[英]C# override base generic method cannot cast T to T?
試圖重寫返回泛型類型的方法。
編譯器錯誤是:
CS0266 cannot implicit convert type 'T' to 'T?'.
簡單的例子:
public class Base
{
public virtual T? Method<T>()
{
return default;
}
}
public class Class : Base
{
public override T? Method<T>()
{
return base.Method<T>();
}
}
我知道這是因為基本方法缺少 class 約束,但我正在調用基本方法,所以不應該發生任何轉換,對吧?
謝謝@lidqy,那篇文章很有幫助。 發現我可以這樣做來編譯它。
public class Base {
public virtual T? Method<T>() {
return default;
}
}
public class Class : Base {
[return: System.Diagnostics.CodeAnalysis.MaybeNull()]
public override T Method<T>() {
return base.Method<T>();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.