如何使用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;
。