摘要:在 C# 2.0 中,下限为零的一维数组自动实现 IList。这使您可以创建能够使用相同代码循环访问数组和其他集合类型的泛型方法。此技术主要对读取集合中的数据很有用。IList 接口不能用于在数组中添加或移除元素;如果试图在此上下文中调用 IList 方法(如数组的 RemoveAt),将引发异常。 下面的代码示例演示带有 IList 输入参数的单个泛型方法如何同时循环访问列表和数组,本例中为整数...
阅读全文
随笔分类 - .NET
摘要:泛型方法是使用类型参数声明的方法,如下所示: class SwapTest { static void Swap(ref T left, ref T right) { T temp; temp = left; left = right; right = tem...
阅读全文
摘要:为泛型集合类或表示集合中项的泛型类定义接口通常很有用。对于泛型类,使用泛型接口十分可取,例如使用 IComparable 而不使用 IComparable,这样可以避免值类型的装箱和取消装箱操作。.NET Framework 2.0 类库定义了若干新的泛型接口,以用于 System.Collections.Generic 命名空间中新的集合类。 将接口指定为类型参数的约束时,只能使用实现此接口的类...
阅读全文
摘要:泛型类封装不是特定于具体数据类型的操作。泛型类最常用于集合,如链接列表、哈希表、堆栈、队列、树等,其中,像从集合中添加和移除项这样的操作都以大体上相同的方式执行,与所存储数据的类型无关。 对于大多数需要集合类的方案,推荐的方法是使用 .NET Framework 2.0 类库中所提供的类。有关使用这些类的更多信息。 一般情况下,创建泛型类的过程为:从一个现有的具体类开始,逐...
阅读全文
摘要:在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。下表列出了六种类型的约束: 约束 说明 ...
阅读全文
摘要:在泛型类型或方法定义中,类型参数是客户端在实例化泛型类型的变量时指定的特定类型的占位符。泛型类(如泛型介绍(C# 编程指南)中列出的 GenericList)不可以像这样使用,因为它实际上并不是一个类型,而更像是一个类型的蓝图。若要使用 GenericList,客户端代码必须通过指定尖括号中的类型参数来声明和实例化构造类型。此特定类的类型参数可以是编译器识别的任何类型。可以创建任意数目的构造类型实...
阅读全文
摘要:在公共语言运行库和 C# 语言的早期版本中,通用化是通过在类型与通用基类型 Object 之间进行强制转换来实现的,泛型提供了针对这种限制的解决方案。通过创建泛型类,您可以创建一个在编译时类型安全的集合。 使用非泛型集合类的限制可以通过编写一小段程序来演示,该程序利用 .NET Framework 基类库中的 ArrayList 集合类。ArrayList 是一个使用起来非常方便的集合类,无需进行...
阅读全文
摘要:1. C# 2.0 泛型编程 2.List 泛型类描述:可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。 3. 泛型的优点 4.泛型类型参数 5. 泛型类型参数的约束 6. 泛型类7. 泛型接口 8. 泛型方法 9. 泛型和数组
阅读全文
摘要:List 泛型类 注意:此类在 .NET Framework 2.0 版中是新增的。 表示可通过索引访问的对象的强类型列表。提供用于对列表进行搜索、排序和操作的方法。 命名空间:System.Collections.Generic 程序集:mscorlib(在 mscorlib.dll 中) 语法: C# [SerializableAttribute] public class List ...
阅读全文
摘要:C#泛型演示 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Stack { private T[] store; private int siz...
阅读全文
摘要:string str =""初始化对象分配空间 而string str=null初始化对象 更详细的解释 这样定义后,str1是一个空字符串,空字符串是一个特殊的字符串,只不过这个字符串的值为空,在内存中是有准确的指向的。string str2=null,这样定义后,只是定义了一个string 类的引用,str2并没有指向任何地方,在使用前如果不实例化的话,将报错。
阅读全文
摘要:(1)new 运算符 用于创建对象和调用构造函数。 (2)new 修饰符 用于隐藏基类成员的继承成员。 (3)new 约束 用于在泛型声明中约束可能用作类型参数的参数的类型。 new 运算符 1.用于创建对象和调用构造函数 例:Class_Test MyClass = new Class_Test(); 2.也用于为值类型调用默认的构造函数 例:int myInt = new int(...
阅读全文
摘要:方法参数上的 out 方法参数关键字使方法引用传递到方法的同一个变量。当控制传递回调用方法时,在方法中对参数所做的任何更改都将反映在该变量中。 当希望方法返回多个值时,声明 out 方法非常有用。使用 out 参数的方法仍然可以返回一个值。一个方法可以有一个以上的 out 参数。 若要使用 out 参数,必须将参数作为 out 参数显式传递到方法。out 参数的值不会传递到 out 参数。 不必初...
阅读全文
摘要:[.NET(C#)] 把attribute翻译成特性,用来标识类,方法 把property翻译为属性,性质,用于存取类的字段 把markup翻译成标记,tag还是翻译成标签比较好 [.NET(C#)] .NET Framework的核心是其运行库的执行环境。 称为公共语言运行库(CLR)或.NET运行库. 通常将在CLR的控制下运行的代码称为托管代码(managed code). 在CLR执行开发...
阅读全文
摘要:虚拟方法,由virtual声明,它允许在派生类中重写,也可以不重写。如果在派生类中重写时要声明override. Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> 1 public class myclass 2 { ...
阅读全文
摘要:C# String 对象是不可改变的。每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间。在需要对字符串执行重复修改的情况下,与创建新的 String 对象相关的系统开销可能会非常昂贵。如果要修改字符串而不创建新的对象,则可以使用 System.Text.StringBuilder 类...
阅读全文
浙公网安备 33010602011771号