[英]C# > VB Conversion, RelayCommand behaves differently
[Visual C#]
public ICommand MyCommand
{
get
{
if (this.myCommand == null)
{
this.myCommand = new RelayCommand(this.ShowMyCommand);
}
return this.myCommand;
}
}
private void ShowMyCommand(object param)
{
...
}
此代碼工作正常,但當我將其轉換為Visual Basic時:
[Visual Basic]
Private _myCommand As RelayCommand
Public ReadOnly Property MyCommand As ICommand
Get
If Me._myCommand Is Nothing Then
Me._myCommand = New RelayCommand(Me.ShowMyCommand)
End If
Return Me._myCommand
End Get
End Property
Private Sub ShowMyCommand(ByVal param As Object)
...
End Sub
我收到錯誤:
錯誤3未為'Private Sub ShowMyCommand(param As Object)'的參數'param'指定參數。
有任何想法嗎? 我只是盲目轉換所以我不明白該項目的作用,我只是轉換它。
對於VB來說,我有點茫然,但根據我所知,你需要在方法名前加上關鍵字AddressOf
,以便它可以用作事件的方法組。
以下行:
Me._myCommand = New RelayCommand(Me.ShowMyCommand)
需要寫成:
Me._myCommand = New RelayCommand(AddressOf Me.ShowMyCommand)
錯誤消息是因為編譯器正在嘗試編譯對該方法的調用,因此缺少其參數的參數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.