【发布时间】:2016-10-01 20:18:20
【问题描述】:
我有类似这样的 C#6 代码:
Guid guid = Guid.Empty;
string value = string.Empty;
我想开始使用using static 指令并将其更改为类似
using static System.Guid;
using static System.String;
// ...
Guid guid = Empty;
string value = Empty;
但这只会导致两个错误
错误 CS0229 'Guid.Empty' 和 'string.Empty' 之间的歧义
为什么编译器不能决定我要使用Empty?
【问题讨论】:
-
var guid = Empty;现在将自己置于编译器的位置:) -
@Selman Genç 是的
var不知道该使用哪个。但如果我指定Guid或string?为什么不呢? -
var是一个完全不同的故事。当您使用 var 时,类型取自表达式的右侧(这就是为什么您不能只做var a;- 它不会编译)如果它是已知的而不是动态操作的结果。但在你的情况下,编译器必须推断的不是类型而是类。