共有プロシージャ内からクラスの非共有メンバーを参照しようとしました。 次の例は、このような状況を示しています。
Class Sample
Public x as Integer
Public Shared Sub SetX()
x = 10
End Sub
End Class
前の例では、assignment ステートメント x = 10 このエラー メッセージが生成されます。 これは、共有プロシージャがインスタンス変数にアクセスしようとしているためです。
変数 x は、 Shared として宣言されていないため、インスタンス メンバーです。 クラス Sample の各インスタンスには、独自の個別の変数 xが含まれています。 1 つのインスタンスが xの値を設定または変更しても、他のインスタンスの x の値には影響しません。
ただし、プロシージャSetXは、クラス Sampleのすべてのインスタンス間でSharedされます。 つまり、クラスの 1 つのインスタンスには関連付けされず、個々のインスタンスとは独立して動作します。 特定のインスタンスとの接続がないため、 setX はインスタンス変数にアクセスできません。
Shared変数でのみ動作する必要があります。
SetX共有変数の値を設定または変更すると、その新しい値をクラスのすべてのインスタンスで使用できます。
エラー ID: BC30369
このエラーを解決するには
メンバーをクラスのすべてのインスタンス間で共有するか、インスタンスごとに個別に保持するかを決定します。
メンバーの 1 つのコピーをすべてのインスタンス間で共有する場合は、メンバー宣言に
Sharedキーワードを追加します。 プロシージャ宣言でSharedキーワードを保持します。各インスタンスにメンバーの個別のコピーを含める場合は、メンバー宣言に
Sharedを指定しないでください。 プロシージャ宣言からSharedキーワードを削除します。
こちらも参照ください
.NET