我想返回一個T類型的值。泛型類型函數(屬性)
public T this[int index]
{
get
{
if (typeof(T) == typeof(int))
return (T) dynEx[index].Int;
else if (typeof(T) == typeof(string))
return (T) dynEx[index].Str;
}
}
dynEx是一個複雜的對象,它返回基於某個自定義表達式的對象。
上面的代碼顯然不起作用,因爲它有一個錯誤:「不能將類型'int'轉換爲T」並且「不能將類型'字符串'轉換爲T」。
如何在不影響性能的情況下實現這一目標?
這個屬性被稱爲每幀一千次以上(這是一個遊戲)。
'T'與封閉類型有什麼關係? –
如果你只關心2種類型,我認爲使用超載的策略比泛型更有意義。 – juharr