将可为 null 的自定义类作为参数传递

我的印象是,如果我将一个类作为引用传递给函数,则该引用可以为空。


示例:我有一个代码优先的实体类/数据库表:


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)

但这并没有解决问题。


任何指示将不胜感激。


忽然笑
浏览 143回答 1
1回答

富国沪深

默认情况下,所有引用类型均可为 null,您无需添加 ? 修饰符。来自文档:基础类型 T 可以是任何不可为 null 的值类型。 T 不能是引用类型。所以你的代码应该是:public static void Function1 (int? i, Table1 t)C# 的下一个版本,版本 8 将引入可空引用类型,您需要在每个项目的基础上启用选项,但这将允许您拥有不可为 null 的引用类型。
打开App,查看更多内容
随时随地看视频慕课网APP