【发布时间】:2021-01-07 22:46:32
【问题描述】:
为什么下面的陈述是完全有效的一个
string a = "someString", b = a, c = a;
但是这个不能编译
var a = "someString", b = a, c = a;
另一个例子在这里 首先,一个错误:
我看过一个类似的问题here,但这里的上下文有点不同:
如果
var i = 2, j = 3.4;
然而,编译器更难“消化”(即使在那里我认为将一个识别为 int 而另一个识别为 double 也没有问题)
var a = "someString", b = a;
应该更不模棱两可,因为:
var a = "someString", // here 'a' is inferred to 'string'
所以下面
b = a;
也应该推断为字符串,因为a 的类型已经定义...
【问题讨论】:
-
他们投了反对票,因为问题不清楚:代码在什么上下文中?类,功能?是否涉及泛型?
-
原因与 Eric Lippert 在该问题上给出的相同,可能会造成混淆。而且那个特殊情况并不是一个足够有用的例外来打扰设计。
-
我再说一遍“这不是一个足够有用的例外来打扰设计”
-
微软,恐怕。如果您不喜欢它,请向他们提出您的意见,而不是我。我也会喜欢它,但它就是这样。我注意到VB.net 可以做到这一点
Dim a = "", b = a, c = 5, d= 6.5 -
我什么都没想,只是问问社区了解情况而已。
标签: c# .net syntax language-specifications