文章分类 - C#
摘要:特性(Attributes),MSDN的定义是:公共语言运行时允许你添加类似关键字的描述声明,叫做attributes, 它对程序中的元素进行标注,如类型、字段、方法和属性等。Attributes和Microsoft .NET Framework文件的元数据保存在一起,可以用来向运行时描述你的代码,或者在程序运行的时候影响应用程序的行为。例如,在一个方法前标注[Obsolete]特性,则调用该方法时VS则会提示该方法已过期的警告,如下图:又如,在.Net Remoting的远程对象中,如果要调用或传递某个对象,例如类,或者结构,则该类或结构则必须标注[Serializable]特性。还有,我们
阅读全文
摘要:“协变”是指能够使用与原始指定的派生类型相比,派生程度更大的类型。“逆变”则是指能够使用派生程度更小的类型。解释的很正确,大致就是这样,不过不够直白。直白的理解:“协变”->”和谐的变”->”很自然的变化”->string->object :协变。“逆变”->”逆常的变”->”不正常的变化”->object->string 逆变。上面是个人对协变和逆变的理解,比起记住那些派生,类型,原始指定,更大,更小之类的词语,个人认为要容易点。实例:两个类1 // 父类:动物2 public class Animal3 { }4 5 // 子类:狗6 pub
阅读全文
摘要:先看IEnumerable和IEnumerator两个接口的语法定义。其实IEnumerable接口是非常的简单,只包含一个抽象的方法GetEnumerator(),它返回一个可用于循环访问集合的IEnumerator对象。IEnumerator对象有什么呢?它是一个真正的集合访问器,没有它,就不能使用foreach语句遍历集合或数组,因为只有IEnumerator对象才能访问集合中的项,假如连集合中的项都访问不了,那么进行集合的循环遍历是不可能的事情了。那么让我们看看IEnumerator接口有定义了什么东西。看下图我们知道IEnumerator接口定义了一个Current属性,MoveNe
阅读全文
摘要:枚举是用户定义的整数类型。在声明一个枚举时,要指定该枚举的实例可以包含的一组可接受的值。不仅如此,还可以给值指定易于记忆的名称。如果在代码的某个地方,要试图把一个不在可接受范围内的值赋予枚举的一个实例,编译器就会报告一个错误。从长远来看,创建枚举可以节省大量时间,减少许多麻烦。使用枚举比使用无格式的整数至少有如下3个优势:● 如上所述,枚举可以使代码更易于维护,有助于确保给变量指定合法的、期望的值。● 枚举使代码更清晰,允许用描述性的名称表示整数值,而不是用含义模糊、变化多端的数来表示。● 枚举也使代码更易于键入。在给枚举类型的实例赋值时Visual Studio .NET IDE会通过Int
阅读全文

浙公网安备 33010602011771号