我有這個靜態函數來決定傳入參數的類型,如果它是通用的,或者調用內置的ToString()
方法,或者調用預定義的自定義輔助器打印出它的全部內容,如果它可以枚舉結束。這是我迄今爲止的;變量被定義爲類型T的函數中的參數undefined C#
public static String ToStringDecider<T> (T value)
{
Type t = typeof(value);
if (t.IsSubclassOf (Array) || t.IsSubclassOf (IList))
return ToString_List (value);
else if (t.IsSubclassOf (IEnumerable))
return ToString_Enumerable (value);
else if (t.IsSubclassOf (IDictionary))
return ToString_Dictionary (value);
else
return value.ToString();
}
但是,第一個參考變量value
第3行來了一個語法錯誤,說明"The name 'value' does not exist in the current context."
任何人都可以解釋爲什麼這是怎麼回事?
你嘗試'value.GetType()'? – chouaib 2015-02-12 01:18:49
爲什麼'typeof()'不夠? – Maurdekye 2015-02-12 01:21:28
不應該是typeof(T)? – Tuco 2015-02-12 01:21:47