Для Например, приведенный ниже код не будет скомпилирован, поскольку невозможно разрешить 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
Мобильная версия