有两个使用具有相同名称属性的静态指令

时间:2016-06-02 08:03:55

标签: c# c#-6.0

我有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我想用?

1 个答案:

答案 0 :(得分:0)

因为这不是C#编译器的设计方式。试图猜测你的意思在简单的情况下看起来很简单,就像你所展示的那样,但在其他情况下会出现问题。

例如:

var value = Empty;
string s = Empty.ToString();
F(Empty.SomeMethod());