default方法为泛型参数设置为默认值,default(T) ,参数为占位符,根据封闭的类型,进行给值,如果是值类型则是0,引用类型为null,如果是struct类型,会根据struct里面的类型,确定一个默认值。
class Demo<T> {
public T data = default(T);
public bool IsDefaultValue() {
T temp = default(T);
if (temp.Equals(data))
{
return true;
}
else
{
return false;
}
}
public void SetValue(T value1) {
data = value1;
}
}
类里面有两个泛型参数 data temp,使用default方法赋值,比较两个值是否相等,然后设置value的值,在判断一次
class Program {
static void Main(string[] args) {
Demo<int> intDemo1 = new Demo<int>();
Console.WriteLine(intDemo1.IsDefaultValue());
Console.WriteLine();
intDemo1.SetValue(5);
Console.WriteLine(intDemo1.IsDefaultValue());
}
}
第一次返回True 第二次为False。
使用这个的例子的时候 要注意,如果泛型封闭为string类型会报错,因为temp为null,不可以调用equals方法。