Почему компилятор C# выдает ошибку CS0704 при попытке использовать абстрактный статический интерфейс в шаблоне?C#

Место общения программистов C#
Anonymous
Почему компилятор C# выдает ошибку CS0704 при попытке использовать абстрактный статический интерфейс в шаблоне?

Сообщение Anonymous »

Я пытаюсь реализовать статический абстрактный интерфейс C#. Я прочитал документацию и блоги и не понимаю, что делаю неправильно.
public interface IModel
{
abstract static PropertyInfo KeyProperty { get; }
abstract static string TableName { get; }
}

public abstract record Model: IModel
{
public static PropertyInfo KeyProperty { get; }
public static string TableName { get; }
...
}

public Repository where TModel : Model
{
public void SomeMethod()
{
// This throws a compiler error: "CS0704 Cannot do non-virtual member lookup in 'TModel' because it is a type parameter"
var col = TModel.KeyProperty.Name;
}
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... tract-stat

Вернуться в «C#»