gpt4 book ai didi

c# - 将可为空的自定义类作为参数传递

转载 作者:太空宇宙 更新时间:2023-11-03 20:48:35 25 4
gpt4 key购买 nike

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

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

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)

表 1? t 给出一个错误:

only non-nullable value type could be underlying of System.Nullable

所以我不确定我做错了什么。我试过了

public static void Function1 (int? i, ref Table1? t)

但这并没有解决问题。

如有任何指点,我们将不胜感激。

最佳答案

默认情况下所有引用类型都可以为空,您不需要添加 ? 修饰符。来自docs :

The underlying type T can be any non-nullable value type. T cannot be a reference type.

所以你的代码应该是:

public static void Function1 (int? i, Table1 t)

下一个版本的 C#,版本 8 将介绍 nullable reference types ,您将需要在每个项目的基础上启用选项,但这将允许您拥有不可为 null 的引用类型。

关于c# - 将可为空的自定义类作为参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58044848/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com