我的印象是,如果我將一個類作為引用傳遞給函數,則該引用可以為空。示例:我有一個代碼優先的實體類/數據庫表:public class Table1{ [Key] [DatabaseGenerated(DatabaseGeneratedOption.None)] public int FillID { get; set; } public int OrderID { get; set; } public int FillQuantity { get; set; } public DateTime TransactionDateTime { get; set; } public virtual tblInstruments tblInstruments { get; set; } }我想創建一個具有以下簽名的函數:public static void Function1 (int? i, Table1? t)Table1? t 給出錯誤:只有不可為 null 的值類型才能作為 System.Nullable 的基礎所以我不確定我做錯了什么。 我試過public static void Function1 (int? i, ref Table1? t)但這并沒有解決問題。任何指示將不勝感激。
1 回答

富國滬深
TA貢獻1790條經驗 獲得超9個贊
默認情況下,所有引用類型均可為 null,您無需添加??
?修飾符。來自文檔:
基礎類型 T 可以是任何不可為 null 的值類型。 T 不能是引用類型。
所以你的代碼應該是:
public?static?void?Function1?(int??i,?Table1?t)
C# 的下一個版本,版本 8 將引入可空引用類型,您需要在每個項目的基礎上啟用選項,但這將允許您擁有不可為 null 的引用類型。
- 1 回答
- 0 關注
- 188 瀏覽
添加回答
舉報
0/150
提交
取消