簡體   English   中英

可以是 int 或 string 的可空泛型類型

[英]Nullable generic type that can be an int or string

我正在嘗試創建一個界面,該界面將向數據庫實體添加一列,該實體將用於跟蹤用戶所做的更改。

public interface IAuditEntity<TKey>
{
    TKey? UpdatedBy { get; set; }
}

該接口將由不同的應用程序使用。 因此,一個應用程序可以使用整數作為鍵,另一個應用程序可能使用字符串。

但是,由於它是可空類型,我收到以下錯誤:必須知道可空類型參數是值類型或不可為空的引用類型。 考慮添加“類”、“結構”或類型約束。

我怎樣才能做到這一點,以便我可以同時使用值和引用類型? 所以真的是 int 或 string 嗎?

謝謝。

如果您的目標只是擁有一個可以是引用類型值類型可為空值類型泛型類型參數 只需刪除?

public interface IAuditEntity<TKey>
{
   TKey UpdatedBy { get; set; }
}

public class Bob : IAuditEntity<int?>
{
   public int? UpdatedBy { get; set; }
}

如果您嘗試使用可為空引用類型功能,則需要提高項目的版本

<LangVersion>9.0</LangVersion>
<nullable>enable</nullable> 

請注意,這並不完全受支持,並且可能會導致某些語言功能出現問題,並且並非所有屬性都可用。

暫無
暫無

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

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