WPFプロジェクトのメインウィンドウにpublic staticプロパティ "inDevMode"があります。このプロパティはコマンドに基づいて設定していますアプリケーションを起動するときに行パラメータを設定します。C#WPFメインウィンドウの静的プロパティにApp.xaml.csからアクセスするときにこの奇妙な動作が発生する原因
'Window' does not contain a definition for 'inDevMode' and no extension method 'inDevMode' accepting a first argument of type 'Window' could be found (are you missing a using directive or an assembly reference?)
私は内にあるものを変更する場合は、次の中括弧内の「メインウィンドウ」が(他の二つのタイプの参照がある)、灰色強調表示され、コンパイルするとき、私はこのメッセージを取得されていない
MainWindow mainWindow = new MainWindow();
if (startInDevMode)
{
MainWindow.inDevMode = true;
}
mainWindow.Show();
静的プロパティにアクセスするとき、私は間違っている知っている(以下のように)インスタンス参照にブレース:
012:MainWindow mainWindow = new MainWindow();
if (startInDevMode)
{
mainWindow.inDevMode = true;
}
mainWindow.Show();
は、私はこのエラーを取得します
Member 'MainWindow.inDevMode' cannot be accessed with an instance reference; qualify it with a type name instead
"mainWindow"インスタンスの識別子を "MainWindow"に変更すると、エラーは表示されません。中括弧(「メインウィンドウ」)内
MainWindow MainWindow = new MainWindow();
if (startInDevMode)
{
MainWindow.inDevMode = true;
}
MainWindow.Show();
と型参照今グレー
をしかし、なぜ「メインウィンドウ」名前の競合を解決するには、インスタンスの名前を変更するのでしょうか? – stuicidle
名前 "MainWindow"が突然プロパティではなくスコープ内のローカル変数を参照し、名前解決に成功したためです。非修飾名解決がC#でどのように機能するかについては、次のリンクを参照してください。https://msdn.microsoft.com/en-us/library/aa711882(v=vs.71).aspx – mm8