0

私が作業している「Visual Studio 2011 Ultimate 12」でスタートを押すと、次のように表示されます。

「InvalidOperationException が処理されず、例外がデバッガーによってキャッチされました。ユーザー設定は、ブレークが発生する必要があることを示しています。このスレッドは、コール スタック上の外部コード フレームのみで停止します。外部コード フレームは通常、フレームワーク コードからのものですが、他のコードを含めることもできます。ターゲット プロセスにロードされる最適化されたモジュール。"`

私のコード:

    Public Class Form1
    Private matrix As Integer(,) = PopulateMatrix()

    Private Sub ClickMouse(sender As Object, e As DataGridViewCellMouseEventArgs) Handles DataGridView.CellMouseClick
        MsgBox(e.Clicks & e.ColumnIndex & e.RowIndex)

        matrix(e.ColumnIndex, e.RowIndex) = 0

        Matrixtomatrixdef(matrix)
    End Sub

    Private Function PopulateMatrix() As Integer(,)  
        Dim matrix(10, 10) As Integer
        For rown = 0 To 9
            For columnn = 0 To 9
                matrix(columnn, rown) = 1
            Next
        Next
        Return matrix
    End Function

    Private Sub Matrixtomatrixdef(matrix As Integer(,))     
        Dim Matrixdef(10, 10) As Integer
        For rown = 0 To 9
            For columnn = 0 To 9
                Matrixdef(columnn, rown) = matrix(columnn, rown)
                Debug.Write(Matrixdef(columnn, rown).ToString & " ")
            Next
            Debug.WriteLine("")
        Next
    End Sub
End Class
4

3 に答える 3

1

クラスが初期化されているときに関数を呼び出そうとしているため、それを行うことはできません。変数を宣言しますが、後でコンストラクターのように、または別の適切なポイントで設定します。

Private matrix As Integer(,)

Public Sub New() 'constructor
  matrix = PopulateMatrix
End Sub 
于 2013-05-22T18:08:13.963 に答える
0

フィールド定義の一部と同じオブジェクトでメソッドを呼び出すことはできません。インスタンス メソッドは、すべてのフィールドが初期化された後にのみ使用できます。

于 2013-05-22T18:12:42.880 に答える