2010-09-05 5 views
3

J'ai examiné un grand nombre d'exemples de code générique C# et je me souviens avoir vu une astuce de déclaration syntaxique qui créait un type abrégé alternatif pour un type de dictionnaire générique long. il était quelque chose comme le mélange C# et C++:Déclaration sténographique des types de collection génériques longs

typedef MyIndex as Dictionary< MyKey, MyClass>; 

Cela a permis à l'usage alors suivant:

class Foo 
{ 
    MyIndex _classCache = new MyIndex(); 
} 

Quelqu'un peut-il me rappeler quelle fonction C# lanaguage soutient cela?

+0

Wow, c'est quelque chose que je ne le ferais pas. C# n'a pas de macros pour une raison. –

Répondre

9

Il est, une autre forme de using directive, utilisé pour définir un alias.

using MyClass = System.Collections.Generic.Dictionary<string, int>; 

namespace MyClassExample 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      var instanceOfDictionaryStringInt = new MyClass(); 
     } 
    } 
} 
+0

Merci Rob et autres. La prochaine fois que je serai dans une interview, je saurai que c'est ce qu'on appelle un pseudonyme. Réponse maintenant cuit dans mon code. – camelCase

+0

Oublié de dire Je pense que l'alias (using) doit être déclaré dans une région d'espace de noms d'application. – camelCase

4
using MyIndex = Dictionary<MyKey, MyClass>; 
2

Voici un exemple de la façon dont le fait

using Test = System.Collections.Generic.Dictionary<int, string>; 

namespace TestConsole 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Test myDictionary = new Test(); 
      myDictionary.Add(1, "One"); 
     } 

    } 
} 
Questions connexes