2009-11-06 22 views

回答

2

這將需要一個接口,如IArithmetic。

不幸的是,目前這並不奏效。然而,這是一個highly requested feature

some workarounds,通常需要使用第二個通用參數,但大多數不會與IEnumerator<T>一起使用。

0

您可以在類型參數上定義constraints。因此,您可以要求T實現一個接口:

public static class Classy 
{ 
    public static void Extension<T>(this IEnumerable<T> Ninjas) 
     where T : IMathStuff 
    { 

    } 
} 

這要求所有T實現IMathStuff。現在,如果您無法將操作員安裝到IMathStuff界面中,則可以將界面留爲空白(Marker Interface),並僅將其應用於執行操作員的類。

這種假定您正在使用所有自定義類而不是內置類型。這是一個不完全支持的解決方法。

0

有沒有一種乾淨的方式來做到這一點。您將需要實現IEnumberable < int>,IEnumberable < float> ...等

0

不在編譯期。我想,你必須使用反思。

其中很多值類型,如int和long,「where T:struct」,但沒有它們共有的接口或基類型。

相關問題