摘要: ref和out的区别在C# 中,既可以通过值也可以通过引用传递参数。通过引用传递参数允许函数成员更改参数的值,并保持该更改。若要通过引用传递参数, 可使用ref或out关键字。ref和out这两个关键字都能够提供相似的功效,其作用也很像C中的指针变量。它们的区别是:1、使用ref型参数时,传入的参数必须先被初始化。对out而言,必须在方法中对其完成初始化。 2、使用ref和out时,在方法的参数和... 阅读全文
posted @ 2010-09-14 17:38 英雄不问出处 阅读(169) 评论(0) 推荐(0) 编辑
摘要: 今天给一个同事讲一个程序,应该是一个比较基础的程序,但是把我给难住了(哎,才发现自己的基础也滥的可以了),程序大概是这样的: public class MyStringArray : IEnumerable { public IEnumerator GetEnumerator() { return (IEnumerator)new MyStringArrayEnumerator(this); } ... 阅读全文
posted @ 2010-09-14 17:32 英雄不问出处 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 1.System.Colloctions中表示集合的行为的接口有:1)ICollection定义所有集合的大小、枚举数和同步方法。派生于IEnumerable它定义了集合类最基本的行为,所有的集合类都实现了这个接口(基接口)但是它的行为太过基本:主要就是一个Count属性,单独实现它没有太大意义2)IEnumerable公开枚举数,该枚举数支持在集合上进行简单迭代它只有一个方法 GetEnumer... 阅读全文
posted @ 2010-09-14 17:28 英雄不问出处 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 本章导读System.Collections.Generic和System.Collections集合的结构有很多相似之处,不同的是“Generic”提供的都是泛型集合,而“Collections”中的集合并不都支持泛型。System.Collections.Generic是在C# 2.0中新加的命名空间,主要用来创建强类型集合,以提高类型安全和操作... 阅读全文
posted @ 2010-09-14 17:27 英雄不问出处 阅读(2006) 评论(0) 推荐(0) 编辑
摘要: System.Collections 命名空间包含接口和类,这些接口和类定义各种对象(如列表、队列、位数组、哈希表和字典)的集合。System.Collections.Generic 命名空间包含定义泛型集合的接口和类,泛型集合允许用户创建强类型集合,它能提供比非泛型强类型集合更好的类型安全性和性能。System.Collections.Specialized 命名空间包含专用的和强类型的集合,例... 阅读全文
posted @ 2010-09-14 17:22 英雄不问出处 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 1)IEnumerable:IEnumerable是公开枚举数,该枚举数支持在集合上进行简单迭代。必须对它进行实现才能支持ForEach语义。2)ICollection:派生自IEnumerable接口,定义所有集合的大小、枚举数和同步方法。3)IList:派生自ICollection。IList实现是可被排序且可按照索引访问其成员的值的集合,如ArrayList类。4)IDictionary:和... 阅读全文
posted @ 2010-09-14 17:16 英雄不问出处 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 对于.NET Framework提供的“标准”的集合类型可以直接使用foreach,如(Array、ArrayList、HashTable),除此之外,对于自定义的集合对象,也可以使其支持foreach的使用,只要实现IEnumerable接口即可(刚提到的几种集合类型都实现了这个接口)。先看个例子:publicclassHelloCollection:IEnumerabl... 阅读全文
posted @ 2010-09-14 17:11 英雄不问出处 阅读(346) 评论(0) 推荐(0) 编辑
摘要: 一直以来,搞不懂IEnumerable与IEnumerator这两个接口的区别,今天看了一下MSDN并在网上搜了一把关于他们的区别,似乎理解了,但还是弄不懂他们最主要的区别是什么。看看MSDN是怎么定义他们的吧。再贴一个MSDN给出的例子:IEnumerable和IEnumerator有什么区别?这是一个很让人困惑的问题(在很多forum里都看到有人在问这个问题)。研究了半天,得到以下几点认识:1... 阅读全文
posted @ 2010-09-14 17:09 英雄不问出处 阅读(245) 评论(0) 推荐(0) 编辑
摘要: IEnumerator:提供在普通集合中遍历的接口,有Current,MoveNext(),Reset(),其中Current返回的是object类型。IEnumerable: 暴露一个IEnumerator,支持在普通集合中的遍历。IEnumerator<T>:继承自IEnumerator,有Current属性,返回的是T类型。IEnumerable<T>:继承自IEnu... 阅读全文
posted @ 2010-09-14 17:07 英雄不问出处 阅读(1001) 评论(0) 推荐(0) 编辑
摘要: 面向对象的三个基本特征是:封装、继承、多态。 封装封装最好理解了。封装是面向对象的特征之一,是对象和类概念的主要特性。封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏。继承面向对象编程 (OOP) 语言的一个主要功能就是“继承”。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况... 阅读全文
posted @ 2010-09-14 17:00 英雄不问出处 阅读(674) 评论(0) 推荐(0) 编辑