您的位置:首页 > 其它

泛型(二)

2016-02-24 16:02 260 查看
之所以会用到default关键字,是因为需要在不知道类型参数为值类型还是引用类型的情况下,为对象实例赋初值。考虑以下代码:

class TestDefault<T>
{
public T foo()
{
T t = null; //???
return t;
}
}


View Code
引入了default关键字:

class TestDefault<T>
{
public T foo()
{
return default(T);
}
}


class Program
{
static void Main(string[] args)
{
TestDefault<int> t1 = new TestDefault<int>();
int i = t1.foo();
System.Diagnostics.Debug.Assert(i == 0);
TestDefault<object> t2 = new TestDefault<object>();
object o = t2.foo();
System.Diagnostics.Debug.Assert(o == null);
}
}


在.net 2.0的早期preview中,没有default关键字,使用如下的方式实现default关键字的功能:

class TestDefault<T>
{
public T foo()
{
return T.default;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: