Похоже, это маловероятно: https://github.com/dotnet/csharplang/issues/810
Вы можете немного обмануть и go с помощью чего-то, что генерирует символ T
, поскольку nameof
- это конструкция времени компиляции. В некотором смысле это лучше, чем кодирование в соответствии с интерфейсом, поскольку при компиляции он делает все правильно, однако это больше вопрос мнения.
public abstract class ATest<T> where T : class, ITest
{
public void Test()
{
var field = nameof(THack.DataIns);
}
static T THack => throw new NotImplementedException();
}
Учитывая, что это можно сделать, это немного глупо, что вы не можете использовать T
напрямую.