Для проекта, написанного на VB.net, я хочу использовать класс PropertyChangeNotifier
из этой статьи , по крайней мере, я хотел бы попробовать, если это поможет.
Так какисходный класс написан на C # Я пытался перевести этот класс на VB.net, но одну функцию я не могу скомпилировать, и я не знаю почему, может быть, вы можете помочь.
Оригинальная функцияв C #:
private static void OnPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
PropertyChangeNotifier notifier = (PropertyChangeNotifier)d;
if (notifier.ValueChanged != null)
notifier.ValueChanged(notifier, EventArgs.Empty);
}
Мой (слегка измененный) перевод (и автоматический перевод нескольких веб-сайтов):
Private Shared Sub OnPropertyChanged(d As DependencyObject, e As DependencyPropertyChangedEventArgs)
Dim notifier As PropertyChangeNotifier
notifier = TryCast(d, PropertyChangeNotifier)
If (notifier Is Nothing) Then
Exit Sub
End If
RaiseEvent notifier.ValueChanged(notifier, EventArgs.Empty)
End Sub
Если я удаляю RaiseEvent
, компилятор сообщаетмне, что ValueChanged
является событием и не может быть вызван напрямую, я должен использовать RaiseEvent
Но когда я использую RaiseEvent
, компилятор сообщает мне,
'notifier' не объявлен. Он может быть недоступен из-за уровня защиты.
Но, как вы видите, notifier
объявлено на несколько строк вверх.