簡體   English   中英

C#> VB轉換,RelayCommand的行為不同

[英]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.

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