gpt4 book ai didi

c# - C# 7 中 Var 模式的使用

转载 作者:可可西里 更新时间:2023-11-01 07:51:44 25 4
gpt4 key购买 nike

我在新的 C# 7 中看到了这个 var 模式的例子

if (o is var x) Console.WriteLine($"it's a var pattern with the type {x?.GetType()?.Name}");

just use 有什么不同:

var x = o;
Console.WriteLine($"it's a var pattern with the type {x?.GetType()?.Name}");

当此模式成为有用的解决方案时。

最佳答案

该示例没有实际区别。不幸的是,很多网站都在使用它——甚至 the language reference .

您使用 x is var y 的主要原因如果您需要 bool 表达式中的临时变量,请使用模式。例如:

allLists.Where(list => list.Count() is var count && count >= min && count <= max)

通过创建临时变量 count我们可以多次使用它而无需调用 Count() 的性能成本每次。

在那个例子中我们可以使用 is int count相反——var只是一种风格选择。但是,有两种情况 var需要:anonymous types或者如果你想允许空值。后者是因为null不匹配任何类型。

专用于if ,不过,您可以做同样的事情:if (list.Count() is var count && count >= min && count <= max) .但这显然很愚蠢。普遍的共识似乎是它在 if 中没有什么用处。 .但是语言不会阻止你,因为从那个特定的表达语句中禁止这个特定的表达形式会使语言复杂化。

关于c# - C# 7 中 Var 模式的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45844586/

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