importations statiques dans c #

Est-ce que C # a une fonctionnalité comme les importations statiques de Java?

donc au lieu d’écrire du code comme

FileHelper.ExtractSimpleFileName(file) 

Je pourrais écrire

 ExtractSimpleFileName(file) 

et le compilateur saurait que je veux dire méthode de FileHelper.

À partir de C # 6.0, cela est possible:

 using static FileHelper; // in a member ExtractSimpleFileName(file) 

Toutefois, les versions précédentes de C # n’ont pas d’importations statiques.

Vous pouvez vous rapprocher d’un alias pour le type.

 using FH = namespace.FileHelper; // in a member FH.ExtractSimpleFileName(file) 

Vous pouvez également remplacer la méthode statique par une méthode d’extension sur le type – vous pourrez alors l’appeler comme suit:

 var value = file.ExtractSimpleFileName(); 

Non, cette fonctionnalité n’existe pas en C #. Vous devez spécifier la classe à laquelle appartient la méthode statique, sauf si vous êtes déjà dans une méthode de cette même classe.

En C # bien que vous ayez des méthodes d’extension qui imitent ceci.

Le temps passe… il semble que C # puisse avoir des importations statiques dans la prochaine version, voir http://msdn.microsoft.com/en-us/magazine/dn683793.aspx pour un aperçu.

 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!"); } } 

La documentation officielle du compilateur ‘Roslyn’ C # répertorie la fonctionnalité comme ‘done’

C # 6.0 sous Roslyn Platform prend en charge l’importation statique . Il nécessite une déclaration comme:

 using static System.Console; 

donc le code pourrait ressembler à:

 using static System.Console; namespace TestApplication { class Program { static void Main(ssortingng[] args) { WriteLine("My test message"); } } } 

La version précédente de C # 6.0 avait une importation static sans mot-clé static .

Pour d’autres nouvelles fonctionnalités dans C # 6.0, voir: Nouvelles fonctionnalités linguistiques en C # 6