首页 > 代码库 > default of c#
default of c#
【default of c#】
在泛型类和泛型方法中产生的一个问题是,在预先未知以下情况时,如何将默认值分配给参数化类型 T:
T 是引用类型还是值类型。
如果 T 为值类型,则它是数值还是结构。
给定参数化类型 T 的一个变量 t,只有当 T 为引用类型时,语句 t = null 才有效;只有当 T 为数值类型而不是结构时,语句 t = 0 才能正常使用。解决方案是使用default 关键字,此关键字对于引用类型会返回 null,对于数值类型会返回零。对于结构,此关键字将返回初始化为零或 null 的每个结构成员,具体取决于这些结构是值类型还是引用类型。以下来自 GenericList<T> 类的示例显示了如何使用 default 关键字。
1 public class GenericList<T> 2 { 3 private class Node 4 { 5 //... 6 7 public Node Next; 8 public T Data; 9 }10 11 private Node head;12 13 //...14 15 public T GetNext()16 {17 T temp = default(T);18 19 Node current = head;20 if (current != null)21 {22 temp = current.Data;23 current = current.Next;24 }25 return temp;26 }27 }
参考:http://msdn.microsoft.com/zh-cn/library/xwth0h0d(v=vs.90).aspx
default of c#
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。