泛型程式碼中的預設關鍵字 (C# 程式設計手冊)
更新:2007 年 11 月
在泛型類別和方法中會發生一個問題,也就是當您無法預先知道下列資訊時,如何將預設值指派給參數化型別 T:
T 是參考型別或實值型別
如果 T 是實值型別,則會是數字值或結構
當指定參數化型別 T 的變數 t 時,只有在 T 是參考型別時,陳述式 t = null 才有效,並且 t = 0 只有對數值型別 (而不是結構) 有效。解決方法是使用 default 關鍵字,對參考型別傳回 null 而對數值型別傳回零。這種方法會根據結構是實值或參考型別,為結構傳回初始化成零或 null 的每個結構成員。下列 GenericList<T> 類別的程式碼範例示範如何使用 default 關鍵字。如需詳細資訊,請參閱泛型概觀。
public class GenericList<T>
{
private class Node
{
//...
public Node Next;
public T Data;
}
private Node head;
//...
public T GetNext()
{
T temp = default(T);
Node current = head;
if (current != null)
{
temp = current.Data;
current = current.Next;
}
return temp;
}
}