我的印象是,如果我将一个类作为引用传递给函数,则该引用可以为空。示例:我有一个代码优先的实体类/数据库表: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 关注
- 142 浏览
添加回答
举报
0/150
提交
取消