静态导入在C#
C#有像Java的静态导入function吗?
所以不要写代码
FileHelper.ExtractSimpleFileName(file)
我可以写
ExtractSimpleFileName(file)
编译器会知道我是指FileHelper的方法。
从C#6.0开始,这是可能的:
using static FileHelper; // in a member ExtractSimpleFileName(file)
但是,以前版本的C#没有静态导入。
您可以使用types的别名closures。
using FH = namespace.FileHelper; // in a member FH.ExtractSimpleFileName(file)
或者,将静态方法更改为该types的扩展方法 – 然后可以将其称为:
var value = file.ExtractSimpleFileName();
不,这样的function在C#中不存在。 您需要指定静态方法所属的类,除非您已经在同一个类的方法中。
在C#中,虽然你有扩展方法 ,这种模仿这种。
时间在stream逝……看起来C#可能会在下一个版本中获得静态导入,请参阅http://msdn.microsoft.com/en-us/magazine/dn683793.aspx预览。;
using System; using System.Console; // using the Console class here public class Program { public static void Main() { // Console.WriteLine is called here WriteLine("Hello world!"); } }
“Roslyn”C#编译器的官方文档列出了“完成”function
Roslyn平台下的C#6.0 支持静态导入 。 它需要像这样的陈述:
using static System.Console;
所以代码可能如下所示:
using static System.Console; namespace TestApplication { class Program { static void Main(string[] args) { WriteLine("My test message"); } } }
之前计划的C#6.0版本具有不带 static
关键字的静态导入。
有关C#6.0中的其他新function,请参阅: C#6中的新语言function