2009-11-06 56 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”,但没有它们共有的接口或基类型。

相关问题