C#进阶教程(十)

原创 2007年09月29日 08:48:00
C#中的容器
  现在我想说的是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.
好了,这一节就说到这了  

C#进阶教程(七)

C#中的结构(struct)  我要说的是C#中的,注意,我在这里说的结构不是指的C#的语言结构.这里所说的是一种与类(class)相对的东西,下面我就与类相对比,来说一说这个struct.  下面的...
  • jroc123
  • jroc123
  • 2007年09月29日 08:45
  • 346

C++高级进阶 第一季:const 详解

零、文章来由打算将基础知识在看书的同时系统的整理一下,方便大家也方便自己。整理的知识尽量参照书本知识,比网上获取的资料有更高的可信度。一、从 文字常量和常变量 开始补充:const并没有想象中的那么简...
  • Scythe666
  • Scythe666
  • 2016年03月05日 10:11
  • 1448

sql语句进阶教程(学习sql这一篇就够了)

转载自:http://blog.csdn.net/u011001084/article/details/51318434 最近从图书馆借了本介绍SQL的书,打算复习一下基本语法,记录一下笔记,整...
  • zsc2014030403015
  • zsc2014030403015
  • 2016年05月04日 23:07
  • 6747

C++高级编程(成为C++高手的必由之路)

我们已经知道C++中的标准输入输出流,cout和cin现在我们来学习文件读取流和向文件写入流。这就需要用到 C++ 中另一个标准库 fstream,它定义了三个新的数据类型: 数据类型 描述...
  • songkai320
  • songkai320
  • 2016年07月15日 15:13
  • 6437

C#进阶教程原版电子书 入门/提高都适合的好东东!

  • 2008年09月24日 20:33
  • 778KB
  • 下载

C#入门至进阶(适合初学者,10天教程).doc

  • 2008年09月06日 14:52
  • 680KB
  • 下载

C#基础教程-委托进阶,将方法绑定到委托

将方法绑定到委托   看到这里,是不是有那么点如梦初醒的感觉?于是,你是不是在想:在上面的例子中,我不一定要直接在GreetPeople()方法中给 name参数赋值,我可以像这样使用变量: ...
  • neso520
  • neso520
  • 2011年08月05日 14:54
  • 411

Django官方教程(十)【进阶内容:编写可重用的应用】

进阶内容:如何编写可重用的应用本篇从 教程第七部分(zh)结束的地方开始。我们将把之前写的调查应用转化为一个可在新项目中重复使用,和能分享给其他人的独立 Python 包。如果您还没有完成教程 1-7...
  • WuLex
  • WuLex
  • 2017年10月30日 14:13
  • 190

Android高手进阶教程(十)之----Android PopupWindow的使用!

大家好,我们这一节讲的是Android PopupWindow的使用! 在我理解其实PopupWindow其实类似于一个不能动的Widget(仅从显示效果来说!) 它是浮在别的窗口之上的. 下面我...
  • cbk861110
  • cbk861110
  • 2012年09月08日 12:13
  • 704

Android高手进阶教程(十)之----Android PopupWindow的使用!!!

大家好,我们这一节讲的是Android PopupWindow的使用! 在我理解其实PopupWindow其实类似于一个不能动的Widget(仅从显示效果来说!)   它是浮在别的窗口之上的. ...
  • twlkyao
  • twlkyao
  • 2013年03月27日 12:14
  • 734
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#进阶教程(十)
举报原因:
原因补充:

(最多只允许输入30个字)