如何使用C#6“使用静态”function?

我正在看看C#6中的一些新function ,特别是“使用静态”

使用static是一种新的using子句,可以让你直接将静态成员types导入到作用域中。
(博客文章的底部)

这个想法如下,根据我发现的几个教程,
代替:

using System; class Program { static void Main() { Console.WriteLine("Hello world!"); Console.WriteLine("Another message"); } } 

您可以使用静态类的新C#6function省略重复的Console语句:

 using System.Console; // ^ `.Console` added. class Program { static void Main() { WriteLine("Hello world!"); WriteLine("Another message"); } // ^ `Console.` removed. } 

但是,这似乎并没有为我工作。 我在using声明中遇到错误,他说:

using namespace ”指令的A只能应用于命名空间;“ Console ”不是命名空间的types,考虑“ using static ”指令而不是“

我正在使用Visual Studio 2015,并且我将构build语言版本设置为“C#6.0”

是什么赋予了? msdn博客的例子不正确吗? 为什么这不工作?

自从这些博客文章被写入后,它的语法似乎有所改变。 如错误消息所示,将static添加到include语句中:

 using static System.Console; // ^ class Program { static void Main() { WriteLine("Hello world!"); WriteLine("Another message"); } } 

然后,你的代码将被编译。


请注意,这只适用于声明为static成员。

例如,考虑System.Math

 public static class Math { public const double PI = 3.1415926535897931; public static double Abs(double value); // <more stuff> } 

using static System.Math ,可以使用Abs();
但是,您仍然必须为PI添加前缀,因为它不是静态成员: Math.PI;