C#.NET泛型方法和继承
在C#.NET中是否可以使用泛型执行以下操作C#.NET泛型方法和继承,c#,generics,inheritance,C#,Generics,Inheritance,在C#.NET中是否可以使用泛型执行以下操作 公共抽象类A { 公共摘要T方法B(字符串s); } 公共C类:A { 公共覆盖日期时间方法B(字符串s) { } } i、 e.在基类中使用泛型方法,然后在子类中为该方法使用特定类型。类型参数应与类型一起声明,子类将在其继承声明中声明特定类型: public abstract class A<T> { public abstract T MethodB(string s); } public class C: A<
公共抽象类A
{
公共摘要T方法B(字符串s);
}
公共C类:A
{
公共覆盖日期时间方法B(字符串s)
{
}
}
i、 e.在基类中使用泛型方法,然后在子类中为该方法使用特定类型。类型参数应与类型一起声明,子类将在其继承声明中声明特定类型:
public abstract class A<T>
{
public abstract T MethodB(string s);
}
public class C: A<DateTime>
{
public override DateTime MethodB(string s)
{
...
}
}
公共抽象类A
{
公共摘要T方法B(字符串s);
}
公共C类:A
{
公共覆盖日期时间方法B(字符串s)
{
...
}
}
否
原因是您将只为一种特殊情况提供实现。基类要求您实现一个可用于任何类型T
的方法b
。如果您只为DateTime
实现它,并且如果有人调用,例如,((A)obj).MethodB
,那么您没有任何可以使用的实现
public abstract class A<T>
{
public abstract T MethodB(string s);
}
public class C: A<DateTime>
{
public override DateTime MethodB(string s)
{
...
}
}