Eksperymentowałem z nameof
z rodzajami. Nie osiągnąłem oczekiwanego rezultatu. Nie jestem pewien, czy jest to część specyfikacji, czy nie.nameof z generics
class MainClass
{
public static void Main (string[] args)
{
Console.WriteLine ($"Hello { nameof(FooBar<string>)! }");
}
}
class FooBar<T> { }
Wyjście mogę to
Hello FooBar!
spodziewałbym kilka szczegółów na temat parametrów typu.
próbowałem go z metodą i że nie powiedzie się z błąd kompilatora:
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)
Czy to dlatego nameof
jest konstruktem kompilacji i generyczne są rodzaje zainicjowany w czasie wykonywania? Czy jest jakieś inne ograniczenie?