gpt4 book ai didi

c# - 在 LINQ 查询中使用 var 声明集合有什么问题吗?

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

像这样使用 LINQ 时:

collection.Select (...);

更好的说法是:

var result = ...

或:

IEnumerable<Point3> result = ...

我问它是因为它总是IEnumerable,对吗?在这种情况下是不是更明确一些更好?

最佳答案

这真的取决于具体情况。如果从代码的其余部分可以清楚地看出变量是什么类型,或者更重要的是,如果确切知道它是什么类型并不重要,那么 var 就很有用。但是,如果类型声明可以确保您的代码更易于维护且更易于阅读,那么请更加具体并提供类型。

例如,如果您的查询紧接着是对结果的循环并且该循环是显式键入的,var 是一个合理的选择,因为它可以节省键入它的时间并且不会混淆代码到维护起来要困难得多的程度,例如:

// uses var instead of IEnumerable<Size>
var items = from item in myItems select item.Size;
foreach (Size size in items)
{
RecalculateLayout(size);
}

事实上,在刚刚显示的示例中,即使 Size 也可以替换为 var 并且代码仍然可以合理地维护,因为方法调用的类型是足够了。

但是,如果希望查询返回单个值,然后将其用于算术运算,则您可能应该使用明确类型化的结果,如:

// using var here means you can't properly interpret
// the intention for the following line or where an error
// lies if something changes to say, use double instead of int.
int offset = myItems.First().Offset;
myConvertedValue = originalValue + offset;

关于c# - 在 LINQ 查询中使用 var 声明集合有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1040979/

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