Доступ к статическому свойству в универсальном интерфейсеC#

Место общения программистов C#
Ответить
Anonymous
 Доступ к статическому свойству в универсальном интерфейсе

Сообщение Anonymous »

Я создал универсальный интерфейс со статическим свойством, но классы, реализующие этот интерфейс, похоже, не имеют доступа к этому свойству и не предоставляют его другому коду.
Для Например, приведенный ниже код не будет скомпилирован, поскольку невозможно разрешить TestClass.Empty. Я надеюсь и ожидаю, что кто-нибудь сможет объяснить мне, почему это так, и есть ли способ изменить код так, чтобы он делал то, что я ожидаю, например, чтобы в классы, реализующие интерфейс IEmpty, не нужно было добавлять какой-либо код. им, чтобы предоставить свойство Empty.

Код: Выделить всё

public interface IEmpty where T : class, new()
{
public static virtual T Empty { get; } = new ();
}

public sealed class TestClass : IEmpty
{
public bool IsEmpty => this == TestClass.Empty;
}
Я уверен, что мне следует знать это объяснение, но, думаю, именно вы мне скажете, что это такое.

Подробнее здесь: https://stackoverflow.com/questions/792 ... -interface
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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