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<

在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<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) 
    { 
        ...
    } 
}