簡體   English   中英

將代碼形式vb.net轉換為C#時出現問題

[英]Problem in converting the code form vb.net to c#

VB代碼:

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

Public Sub OnPropertyChanged(ByVal e As PropertyChangedEventArgs)
  If PropertyChangedEvent IsNot Nothing Then
    RaiseEvent PropertyChanged(Me, e)
  End If
End Sub

轉換后的C#代碼

public event PropertyChangedEventHandler INotifyPropertyChanged.PropertyChanged;

public delegate void PropertyChangedEventHandler(object sender, PropertyChangedEventArgs e);

public void OnPropertyChanged(PropertyChangedEventArgs e)
{
    if (PropertyChangedEvent != null) {
        if (PropertyChanged != null) {
            PropertyChanged(this, e);
        }
    }
}

錯誤是:

錯誤1名稱'PropertyChangedEvent'在當前上下文中不存在

您的事件稱為“ PropertyChanged”,而不是“ PropertyChangedEvent”。
同樣,該事件是顯式實現的,這意味着,您必須使用以下命令: ((INotifyPropertyChanged)this).PropertyChanged而不是PropertyChanged才能訪問該事件。
正如Oded指出的那樣,代碼對事件進行了兩次檢查。 您可以刪除其中一張支票。

不要使用顯式接口實現,而應將其設為公共方法。

或投this的接口調用處理程序。 ((INotifyPropertyChanged)this).PropertyChanged

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM