摘要: 在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用 where 上下文关键字指定的。基本形式: where T : new()在使用new()约束时,必须通过调用该无参构造函数来创建对象声明了一个叫做Assemble<T>的泛型类,然后T的限制为必须要有一个无参构造函数。如下:public class Assemble<T> where T:new(){ public string SayHello<T> (T object) 阅读全文
posted @ 2012-12-14 16:12 yxyht 阅读(456) 评论(0) 推荐(0) 编辑
摘要: ??含义:如果 ?? 运算符的左操作数非 null,该运算符将返回左操作数,否则返回右操作数。如果不赋予初值,C#的变量是不允许直接使用的。 但有的时候,让值的类型为空是非常有用的,比如三态bool,其中一个状态便是未给定值。 泛型使用System.NullAble<T>提供了类型值为空的一种方式。System.NullAble<T> nullAbleInt;因为太常用,C#特意给了一个语法快捷int? nullAbleInt;简单的例子:int? nVal1 = new int?(); int? nVal2 = null;int? nVal3 = 3;Console. 阅读全文
posted @ 2012-12-14 11:09 yxyht 阅读(1053) 评论(0) 推荐(0) 编辑