精华区 [关闭][返回]

当前位置:月光软件>>讨论区精华>>〖软件开发〗>>● ASP>>★ASP的延伸★>>C# (C Sharp)>>《C#进阶》>>C#进阶(十)

主题:C#进阶(十)
发信人: dongbao(似水流年ζ教皇)
整理人: dongbao(2001-05-25 16:11:45), 站内信件
大家好,我是SUNWEN.今天下午得知,晚上要去当"更夫".呵呵,我们这个学校很是奇怪,要叫我们轮流去通宵巡逻,从晚上10:30到早上6:00.我有一个物理系的朋友,上次在田家炳楼门前找了一个宣传板,垫在下面就睡了一觉,听了笑死我了!哈哈!

现在我想说的是C#中的容器.这是一个非常重要的话题,因为不管你写什么样的程序,你都不能不与容器打交道.什么是容器呢(倒!).容器就是可以容纳东西的东西(再倒!),在C#和JAVA这种面向对象的编程语言中,容器就被称为可以容纳对象的东东,不是说"一切都是对象吗?"以前,我一个搞C++的程序员朋友告诉我,JAVA中的容器太好用了,比C++好用多了.而作为JAVA的后来者的C#毫无疑问,它的容器功能肯定也是很强大的.

foreach语句是遍历容器的元素的最简单的方法.我们可以用System.Collections.IEnumerator类和System.Collections.IEnumerable接口来使用C#中的容器,下面有一个例子,功能是字符串分割器.

000: // CollectionClasses\tokens.cs
001: using System;
002: using System.Collections;
003:
004: public class Tokens : IEnumerable
005: {
006:    private string[] elements;
007:
008:    Tokens(string source, char[] delimiters)
009:    {
010:       elements = source.Split(delimiters);
011:    }
012:
013:    //引用IEnumerable接口014:
015:    public IEnumerator GetEnumerator()
016:    {
017:       return new TokenEnumerator(this);
018:    }
019:
020:    
021:
022:    private class TokenEnumerator : IEnumerator
023:    {   
024:       private int position = -1;
025:       private Tokens t;
026:
027:       public TokenEnumerator(Tokens t)
028:       {
029:          this.t = t;
030:       }
031:
032:       public bool MoveNext()
033:       {
034:          if (position < t.elements.Length - 1)
035: {
036: position++;
037: return true;
038: }
039: else
040: {
041: return false;
042: }
043: }
044:
045: public void Reset()
046: {
047: position = -1;
048: }
049:
050: public object Current
051: {
052: get
053: {
054: return t.elements[position];
055: }
056: }
057: }
058:
059: // 测试060:
061: static void Main()
062: {
063: Tokens f = new Tokens("This is a well-done program.", new char[] {' ','-'});
064: foreach (string item in f)
065: {
066: Console.WriteLine(item);
067: }
068: }
069: }
这个例子的输出是:
This
is
a
well
done
program.
好了,这一节就说到这了.现在环境不太好,旁边一大帮同学在看VCD,不好搞.


----

ICQ:43395237 OICQ:126132(read-only)    
我自豪我用正版,我骄傲我用盗版!!!

[关闭][返回]






转载请注明:转载自 月光程序代码网 [ http://www.moon-soft.com ]