【发布时间】:2021-09-06 14:59:20
【问题描述】:
我过去几乎一直使用隐式类型,但由于有人告诉我使用关键字var 是一种不好的做法,所以我现在尝试使用显式类型。为此,我倾向于使用快捷方式 Ctrl+. 将任何隐式类型更改为其显式类型。
尽管如此,今天我不得不在一个 Foreach 中处理两个列表。为此,我使用了.Zip() 方法。我尝试将其隐式类型更改为显式类型,但我不能。我也尝试使用我提到的快捷方式,但由于某种原因没有选项。
var test = enemyTeam.Zip(imageList, (c, i) => new { Champion = c, Image = i });
Test1(隐式转 Int 类型):
Test2(隐式到显式):我做不到。
我也尝试过这种隐式类型,但没有奏效:
IEnumerable<new { CurrentGameParticipant Champion, PictureBox Image }> test = enemyTeam.Zip(imageList, (c, i) => new { Champion = c, Image = i });
【问题讨论】:
-
这个“某人”有没有给你任何论据,为什么他们认为
var是不好的做法? -
@KlausGütter 因为它使代码更具可重复性。 (这是有道理的,但也更长/更吵)
-
我对“它使代码更具可读性”的反驳是,如果这样做,您的变量和方法名称就不合适了。无论如何,由个人团队或开发人员决定他们对
var的感受。 -
谁告诉过你:告诉他们var is officially recommended best practice - 尤其是像
ArbitraryAbstractNonsensicalReasonFactoryProvider这样的long 类名称,它确实 发生得很远通常,可以说var到目前为止可读性更好。 (ReSharper/Rider 甚至提供了代码检查功能来自动更改代码以使用 var) -
"使用关键字 var 是一种不好的做法" => 意见:除了彼得的回答之外,请参见例如部分 Item 1 Bill Wagner 和Var Keyword In C# 和When to Use and Not Use Variable Type var in C# 编写的Effective C#一书。
标签: c# visual-studio types