SUNWEN教程之----C#進階10

來源:互聯網
上載者:User
教程 SUNWEN教程之----C#進階
(十)
mrfat@china.com  
大家好,我是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,不好搞.
下一頁


相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.