Nehmen Sie diese zwei Klassen zu wissen:nameof Verwendung Mitglied der allgemeinen Klasse zuzugreifen, ohne den Typen
class NonGenericClass
{
public string Member { get; set; }
}
class GenericClass<T>
{
public string Member { get; set; }
}
ich dies leicht tun können:
nameof(NonGenericClass.Member)
Aber ich kann das nicht tun:
nameof(GenericClass.Member)
konnte ich dies tun:
nameof(GenericClass<object>.Member)
Aber ich will nicht.
Gibt es eine Möglichkeit, das zu tun, was ich will, ohne es auf eine Weise tun zu müssen, die ich nicht möchte?
Nun * warum * willst du 'GenericClass
@ JonSkeet Die rationale, ich denke, ist, dass, wenn 'T' hat eine Typ-Constraint und dieser Constraint-Typ ist jemals aus der Assembly entfernt, der Code wird nicht bauen. Vielleicht ist es keine große Sache, einen neuen generischen Typ angeben zu müssen, aber ich bin ein Set-It-and-Forget-It-Typ (wie Ron Popeil), also hoffte ich, dass es eine bessere Methode gibt – oscilatingcretin
Das wäre Eine brechende Veränderung sowieso, lange bevor 'nameof' involviert wird ... und es wäre trivial, den' nameof' Gebrauch zu ändern. Aber nein, es gibt keinen anderen Weg, es zu tun. –