Обновление
Не думаю, что я был достаточно ясен, когда впервые разместил этот вопрос.
Посмотрите на эти скриншоты.
( Ссылка на увеличенный скриншот здесь )
Обратите внимание на части, которые я поместил в красный. Класс, показанный здесь , реализует INotifyPropertyChanged
, но компилятор VB, похоже, считает, что объявленное событие PropertyChanged
не соответствует сигнатуре INotifyPropertyChanged.PropertyChanged
.
( Ссылка на увеличенный скриншот здесь )
Здесь я выбрал неправильную строку кода. Между этим и следующим снимком экрана я буквально просто вырезал и вставлял точно такую же строку обратно в файл (то есть я нажимал Ctrl + X , а затем Ctrl + V ).
( Ссылка на увеличенный скриншот здесь )
Теперь вот! После обрезки и вставки строки ошибка исчезнет.
Что здесь происходит?
Оригинальный вопрос
У меня иногда такое случается, особенно с интерфейсом 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
, поскольку у него нет события PropertyChanged
; или будет сказано, что событие PropertyChanged
не может реализовать INotifyPropertyChanged.PropertyChanged
, поскольку их подписи не совпадают.
Это довольно странно, но это самая странная часть: если я просто обрежу строку, начинающуюся с Event PropertyChanged
, а затем вставлю ее обратно, ошибка исчезнет. Проект компилируется .
Кто-нибудь знает, что здесь происходит?