![](/img/trans.png)
[英]Interface passing int or string as generic type and using in nullable and not nullable properties
[英]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.