我的印象是,如果我將一個(gè)類作為引用傳遞給函數(shù),則該引用可以為空。示例:我有一個(gè)代碼優(yōu)先的實(shí)體類/數(shù)據(jù)庫表: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; } }我想創(chuàng)建一個(gè)具有以下簽名的函數(shù):public static void Function1 (int? i, Table1? t)Table1? t 給出錯(cuò)誤:只有不可為 null 的值類型才能作為 System.Nullable 的基礎(chǔ)所以我不確定我做錯(cuò)了什么。 我試過public static void Function1 (int? i, ref Table1? t)但這并沒有解決問題。任何指示將不勝感激。
1 回答

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