gpt4 book ai didi

c# - 在 if-else 语句范围之外定义 var 以备后用

转载 作者:行者123 更新时间:2023-11-30 19:25:06 26 4
gpt4 key购买 nike

我有一个 if-else 语句,它使用 Linq 从数据库中获取搜索结果,每个结果都不同,但返回的类型相同。

我的问题是我无法初始化 var if-else 语句之外的变量。我需要它,因为在语句之后我继续查询结果。

结果的类型是 iQueryable<mission> ;

如何让函数作用域中的var能够接受结果?

我尝试用 Enumerable.Empty<mission>().AsQueryable() 初始化它它没有用,尝试使用 dynamic变量和设置还设置了 var missions = null , 它也没有用。

最佳答案

所以...不要使用var

IQueryable<Mission> variable;

if (...)
{
...

此外,作为 var variable = null(无法编译)的替代方案,您可以使用 default:

var variable = default(IQueryable<Mission>);

不过,与上面的代码不同的是,这将隐藏因“忘记”分配给变量而产生的错误 - 您正在分配一个“类型化”null,因此该变量已分配一个值。在第一个示例中,variable赋值,因此如果您的代码中有任何分支试图读取 variable 的值 如果不先写入它,编译器将报告错误。另请注意,default 仅对引用类型返回 null。值类型基本上会返回该特定类型的任何零值 - 例如,default(int) 只是零,而 default(DateTime)01/01/0001 00:00:00 (DateTime.MinValue)。

关于c# - 在 if-else 语句范围之外定义 var 以备后用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31162622/

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