C# 12 Alias für beliebige Typen
Die using-alias-Direktive wurde in C# 12 gelockert, sodass Alias für beliebige Typen vergeben werden können, nicht nur für benannte Typen. Damit lassen sich nun Tuples, Pointer, Array-Typen, generische Typen usw. mit Aliasen versehen. Statt der vollständigen strukturellen Form eines Tuples können Sie einen kurzen, aussagekräftigen Aliasnamen verwenden...
Die using-alias-Direktive wurde in C# 12 gelockert: Damit lassen sich Aliase für beliebige Typen vergeben, nicht nur für benannte Typen. Sie können nun also Tuples, Pointer, Array-Typen, generische Typen usw. aliasieren. Statt der vollständigen strukturellen Form eines Tuples nutzen Sie einen kurzen, aussagekräftigen Aliasnamen, den Sie überall verwenden können.
Ein kurzes Beispiel für das Aliasieren eines Tuples. Zuerst der Alias:
using Point = (int x, int y);
Dann verwenden Sie ihn wie jeden anderen Typ: als Rückgabetyp, in der Parameterliste einer Methode oder zum Erzeugen neuer Instanzen. Praktisch ohne Einschränkungen.
Ein Beispiel mit dem oben deklarierten Tuple-Alias:
Point Copy(Point source)
{
return new Point(source.x, source.y);
}
Wie bisher gelten Typaliase nur in der Datei, in der sie definiert sind.
Einschränkungen
Zumindest aktuell müssen Sie für alles, was kein primitiver Typ ist, den voll qualifizierten Typnamen angeben. Zum Beispiel:
using CarDictionary = System.Collections.Generic.Dictionary<string, ConsoleApp8.Car<System.Guid>>;
Höchstens den Namespace Ihrer App können Sie sich sparen, indem Sie den Alias innerhalb des Namespaces definieren.
namespace ConsoleApp8
{
using CarDictionary = System.Collections.Generic.Dictionary<string, Car<System.Guid>>;
}
Error CS8652
The feature ‘using type alias’ is currently in Preview and unsupported. To use Preview features, use the ‘preview’ language version.
Dieser Fehler bedeutet, dass Ihr Projekt noch nicht auf C# 12 läuft und Sie die neuen Sprachfeatures somit nicht nutzen können. Wenn Sie auf C# 12 wechseln möchten und nicht wissen, wie, schauen Sie in unseren Leitfaden zum Umstieg auf C# 12.
Comments
Sign in with GitHub to comment. Reactions and replies thread back to the comments repo.