簡體   English   中英

C#.NET通用方法和繼承

[英]C#.NET Generic Methods and Inheritance

是否可以在C#.NET中使用泛型執行以下操作

public abstract class A
{
    public abstract T MethodB<T>(string s);
}

public class C: A
{
    public override DateTime MethodB(string s)
    {
    }
}

ie在基類中有一個泛型方法,然后在子類中使用該方法的特定類型。

類型參數應該用類型聲明,子類將在其繼承聲明中聲明特定類型:

public abstract class A<T>
{ 
    public abstract T MethodB(string s); 
} 

public class C: A<DateTime> 
{ 
    public override DateTime MethodB(string s) 
    { 
        ...
    } 
} 

沒有。

原因是您只為一個特例提供實施。 基類要求您實現可以適用於任何類型TMethodB 如果你只為DateTime實現它,如果有人調用,例如, ((A)obj).MethodB<int>那么你沒有任何可以使用的實現!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM