是否可以在C#.NET中使用泛型执行以下操作
public abstract class A
{
public abstract T MethodB<T>(string s);
}
public class C: A
{
public override DateTime MethodB(string s)
{
}
}
即。在基类中有一个泛型方法,然后在子类中使用该方法的特定类型。
答案 0 :(得分:7)
应该使用类型声明type参数,子类将在其继承声明中声明特定类型:
public abstract class A<T>
{
public abstract T MethodB(string s);
}
public class C: A<DateTime>
{
public override DateTime MethodB(string s)
{
...
}
}
答案 1 :(得分:1)
没有。
原因是您只为一个特例提供实施。基类要求您实现适用于任何类型MethodB
的{{1}}。如果您仅为T
实施,如果有人调用,例如DateTime
,则您没有任何可以使用的实现!