Ich experimentierte mit nameof
mit Generika. Ich habe das Ergebnis, das ich erwartet hatte, nicht bekommen. Ich bin mir nicht sicher, ob dies Teil der Spezifikation ist oder nicht.nameof with Generics
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ($"Hello { nameof(FooBar<string>)! }");
}
}
class FooBar<T> { }
Der Ausgang ich erhalte, ist
Hello FooBar!
ich einige Details über die Art Parameter erwarten.
Ich versuchte es mit einem Verfahren und das nicht klappt mit einem Compiler-Fehler:
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ($"Hello { nameof(Do<string>) }");
}
public static T Do<T>() {}
}
Error CS8084: An argument to nameof operator cannot be method group with type arguments (CS8084) (foo)
Ist dies, weil nameof
ist ein Kompilierung-Konstrukt und Generika-Typen zur Laufzeit initialisiert? Oder gibt es eine andere Einschränkung?