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

Обновление

Я не думаю, что был достаточно ясен, когда я первоначально отправил этот quesion.

Смотрите на эти снимки экрана.

alt text (Свяжитесь с большим снимком экрана здесь),

Заметьте части, у меня есть загнанный в угол красный. Класс, отображенный здесь, реализует INotifyPropertyChanged, но компилятор VB, кажется, думает что PropertyChanged событие, как объявлено не соответствует подписи INotifyPropertyChanged.PropertyChanged.

alt text (Свяжитесь с большим снимком экрана здесь),

Здесь я выбрал незаконную строку кода. Между этим и следующим снимком экрана я буквально просто вырезал и вставил ту же самую строку назад в файл (т.е. я поразил Ctrl + X сопровождаемый Ctrl + V).

alt text (Свяжитесь с большим снимком экрана здесь),

Теперь созерцайте! После вырезания и вставления строки въезжают задним ходом, ошибка уходит.

Что продолжается здесь?


Исходный вопрос

Я имею, это иногда происходит, особенно с INotifyPropertyChanged взаимодействуйте через интерфейс, по моему опыту, но я понятия не имею, ограничена ли проблема тем единственным интерфейсом (который казался бы причудливым), или нет.

Скажем, у меня есть некоторый кодовый набор как это. Существует интерфейс с единственным событием. Класс реализует тот интерфейс. Это включает событие.

Public Interface INotifyPropertyChanged
    Event PropertyChanged As PropertyChangedEventHandler
End Interface

Public Class Person
    Implements INotifyPropertyChanged

    Public Event PropertyChanged _
    (ByVal sender As Object, ByVal e As PropertyChangedEventArgs) _
        Implements INotifyPropertyChanged.PropertyChanged

    ' more code below '
End Class

Время от времени, когда я разрабатываю свой проект, компилятор внезапно начнет действовать как вышеупомянутый код, повреждается. Это сообщит что Person класс не реализует INotifyPropertyChanged потому что это не имеет a PropertyChanged событие; или это скажет PropertyChanged событие не может реализовать INotifyPropertyChanged.PropertyChanged потому что их подписи не соответствуют.

Это достаточно странно, как это, но здесь является самой странной частью: если я просто отключил строку, запускающуюся с Event PropertyChanged и затем вставка, это въезжает задним ходом, ошибка, уходит. Сборки проекта.

У кого-либо есть какая-либо подсказка, что могло продолжаться здесь?

5
задан Community 8 February 2017 в 14:23
поделиться

2 ответа

У меня код работает нормально (Visual Studio 2008), должно быть, вы столкнулись с какой-то ошибкой.

Во всяком случае, вы также можете реализовать это следующим образом:

Public Class Person
    Implements INotifyPropertyChanged

    Public Event PropertyChanged As PropertyChangedEventHandler _
        Implements INotifyPropertyChanged.PropertyChanged

End Class
2
ответ дан 15 December 2019 в 06:21
поделиться

Вам необходимо отметить событие Public

1
ответ дан 15 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: