デフォルト設定の新しいWinForms.NET4.0アプリケーションで、次のコードを検討してください。
Public Class Form1
Private Sub AAA()
Form1.AAA(Nothing) 'cannot refer to itself through its default instance; use 'Me' instead.
End Sub
Private Shared Sub AAA(str As String)
End Sub
End Class
このエラーが発生します:
{FORM_CLASS_NAME}は、デフォルトのインスタンスを介してそれ自体を参照することはできません。代わりに「Me」を使用してください。
同じ行でこの警告も表示されます。
インスタンスを介した共有メンバー、定数メンバー、列挙型メンバー、またはネストされた型へのアクセス。修飾式は評価されません。
デフォルトのインスタンスがここで意味されていると仮定すると、それは無限ループになります-VSはに変更Me.AAA()
してからForm1.AAA()
元に戻すことを提案します。AAA()
両方で動作します。
に変換Private Sub AAA()
するとShared
、エラーが解決します。Microsoftの観点からは、少なくとも1つが共有されている場合は、すべてのオーバーロードを共有する必要があるようです。または、このデフォルトのインスタンスの混乱が発生します。なんで?
明確にするために、ここではデフォルトインスタンスを使用せず、共有呼び出しを実行します。
誰かが同じ状況に遭遇した場合は、アドバイスしてください。