我有一个我希望在外部扩展的Generic类.
如果我属于这个类MyGenericClass<T>,我可以简单地定义一个类似的方法
public MyReturnType MyMethod()
{
MyReturnType m;
//some code
return m;
}
Run Code Online (Sandbox Code Playgroud)
然后可以像往常一样通过实例调用它 myGenericClass.MyMethod();
但是,我想使用扩展在外部添加此功能.
以下内容无法编译:
public static MyReturnType MyMethod(this MyGenericClass<T> mgc)
{
MyReturnType m;
//some code
return m;
}
Run Code Online (Sandbox Code Playgroud)
因为无法推断出类型T.
以下编译:
public static MyReturnType MyMethod<T>(this MyGenericClass<T> mgc)
{
MyReturnType m;
//some code
return m;
}
Run Code Online (Sandbox Code Playgroud)
但是,这需要我键入myGenericClass.MyMethod<MyT>();,更糟糕的是,MyMethod中的"T"没有约束与MyGenericClass中的"T"相同 - 两个泛型是独立的(并且依赖于两个类使用相同类型的用户)和功能).
我该如何正确申报?
谢谢Haighstrom
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |