静态导入在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