Класс VB.NET наследует базовый класс и реализует проблему интерфейса (работает в C #)

Я пытаюсь создать класс в VB.NET, который наследует базовый абстрактный класс, а также реализует интерфейс. Интерфейс объявляет строковое свойство с именем Description. Базовый класс содержит строковое свойство с именем Description. Основной класс наследует базовый класс и реализует интерфейс. Существование свойства Description в базовом классе удовлетворяет требованиям интерфейса. Это отлично работает в C #, но вызывает проблемы в VB.NET.

Во-первых, вот пример кода на C #, который работает:

public interface IFoo
{
    string Description { get; set; }
}

public abstract class FooBase
{
    public string Description { get; set; }
}

public class MyFoo : FooBase, IFoo
{
}

Теперь вот версия VB.NET, которая выдает ошибку компилятора:

Public Interface IFoo
    Property Description() As String
End Interface

Public MustInherit Class FooBase
    Private _Description As String
    Public Property Description() As String
        Get
            Return _Description
        End Get
        Set(ByVal value As String)
            _Description = value
        End Set
    End Property
End Class

Public Class MyFoo
    Inherits FooBase
    Implements IFoo
End Class

Если я сделаю базовый класс (FooBase) реализовать интерфейс и добавитьImplements IFoo.Description со свойством все хорошо, но я не хочу, чтобы базовый класс реализовывал интерфейс.

Ошибка компилятора:

Класс «MyFoo» должен реализовывать «Property Description () As String» для интерфейса «IFoo». Реализующее свойство должно иметь соответствующие спецификаторы ReadOnly или WriteOnly.

Может ли VB.NET не справиться с этим, или мне нужно где-то изменить свой синтаксис, чтобы заставить это работать?

Ответы на вопрос(7)

Ваш ответ на вопрос