2010-02-20 23 views

Antwort

20

Zum Beispiel:

using MatchBuilderFactoryFunc = System.Func< 
    IndexerBase.RequestMatching.RequestFreeTextAnalyzeParameter, 
    System.Collections.Generic.IEnumerable< 
     IndexerBase.RequestMatching.IMatchBuilder>>; 

Und schließlich ist es so einfach Art verwenden:

MatchBuilderFactoryFunc f = ... 
+4

+1, Nie in Betracht gezogen, es so zu verwenden –

1

Ja. Verwenden Sie die using Direktive.

Wenn Sie mit dem Begriff "C# alias" suchen, finden Sie auch eine einfache Antwort.

+0

Das ist richtig. http://www.codeproject.com/KB/dotnet/Data_Type_Alias__Net.aspx zeigt ein Beispiel. – awright18

4
using XDoc = System.Xml.Linq.XDocument; 

Es ist jedoch nur überlebt für die Zusammenstellung der eine C# Datei. Sie können diesen Alias ​​nicht exportieren.

33

Wie andere gesagt haben, verwenden Sie die "using alias = type;" Form der Nutzungsrichtlinie. Einige Dinge dazu:

1) Es muss die erste Sache in der Datei oder im Namespace sein. (Es sei denn, Sie haben externe Alias-Direktiven natürlich; sie gehen vor der Verwendung von Direktiven.)

2) Der Alias ​​ist kein echter Typ. Viele Leute würden gerne sehen:

using PopsicleCount=System.Int32; 
using GiraffeCount=System.Int32; 
... 
PopsicleCount p = 123; 
GiraffeCount g = p; // ERROR, can't convert a count of giraffes into a count of popsicles 

Aber wir unterstützen diese Funktion nicht. Es ist ein echter Alias; Wir ersetzen einfach den Alising-Typ für den Alias-Bezeichner, wenn wir ihn sehen. p und g sind beide vom Typ int.

3) Der Alias ​​gilt nur in der Datei- oder Namespace-Deklaration, in der er erscheint. Wenn Sie in jeder Datei in Ihrem Programm einen Alias ​​verwenden möchten, müssen Sie ihn in jede Datei Ihres Programms schreiben.

4) Aliase können auf der Aliasnamen-Seite nicht parametrisiert werden, obwohl sie auf der Typseite generische Typen geschlossen werden können. Das heißt, das ist legal:

using GiraffeList = System.Collections.Generic.List<Giraffe>; 

aber das ist nicht:

using Frobtionary<T> = System.Collections.Generic.Dictionary<Frob, T>; 
+0

Sie haben Recht, ich will wirklich 2) auf Ihrer Liste. –

Verwandte Themen