Статические абстрактные свойства C# не могут быть перезаписаны дочерним интерфейсом.C#

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

Сообщение Anonymous »


Я пытаюсь работать со статическими абстрактными свойствами, которые были представлены в .NET 7. вот пример того, чего я пытаюсь достичь:

публичный интерфейс IRegister { общественный статический абстрактный байт RegisterCode {get; } общественный статический абстрактный int BitsSize {get; } } общедоступный интерфейс IRegister8Bit: IRegister { public static new int BitsSize => 8; } публичный класс T: IRegister { общедоступный статический байт RegisterCode => 0x01; общественный статический int BitsSize => 16; } общедоступный класс T2: IRegister8Bit { общедоступный статический байт RegisterCode => 0x07; } Программа общественного класса { public static void Test() где Register: IRegister { Console.WriteLine(Register.RegisterCode); Console.WriteLine(Register.BitsSize); } общественная статическая пустота Main() { Тест(); Тест(); } } Но я получаю следующую ошибку компиляции:

Ошибка компиляции (строка 20, столбец 19): «T2» не реализует интерфейс. член 'IRegister.BitsSize'

почему T2 все еще просит меня явно реализовать BitsSize, хотя он реализован в родительском интерфейсе IRegister8Bit?

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