在C#中是否有一种方法可以使用带有可选Type的泛型类。
例如
类别:
public abstract class A<Type> : Interface where Type : new()
{
public string Method1(int param)
{ ... }
}
致电:
A<SomeType>.Method1(9);
A.Method1(9);
答案 0 :(得分:2)
我认为你应该直接思考你的设计。
您要么具有泛型类,具有完全限定的类型名称,要么您具有非泛型类。它是其中之一。你没有半班。
所以你可以这样写:
public class A : Interface
{
public string Method1(int param)
{ ... }
}
A a = new A();
string output = a.Method1(10);
或者如果你使Method1
静态:
string output = A.Method1(10);
然后您可以选择为通用变体派生出一个:
public class B<T> : A where T : new()
{
}
B<int> b = new B<int>();
string output = b.Method1(10);