首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区

  • 技术部落
  • 部落首页 > 程序开发 > C/C#/C++ > 正文
  • SUNWEN教程之----C#进阶(十)
      2007-2-25  来源:网络资源  编辑:Jsbulo  热度:

    大家好,我是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,不好搞.