我在WPF项目的主窗口中有公共静态属性“inDevMode”,我在启动应用程序时基于命令行参数设置此属性 .
MainWindow mainWindow = new MainWindow();
if (startInDevMode)
{
MainWindow.inDevMode = true;
}
mainWindow.Show();
花括号内的“MainWindow”不会突出显示为灰色(其他两个类型引用),编译时我收到此消息:
'Window'不包含'inDevMode'的定义,并且没有扩展方法'inDevMode'可以找到接受类型'Window'的第一个参数(你是否缺少using指令或汇编引用?)
如果我将大括号内的内容更改为实例引用(如下所示),我在访问静态属性时知道错误:
MainWindow mainWindow = new MainWindow();
if (startInDevMode)
{
mainWindow.inDevMode = true;
}
mainWindow.Show();
我收到此错误:
使用实例引用无法访问成员'MainWindow.inDevMode';用类型名称来限定它
但是,如果我将“mainWindow”实例的标识符更改为“MainWindow”,那么我没有错误?
MainWindow MainWindow = new MainWindow();
if (startInDevMode)
{
MainWindow.inDevMode = true;
}
MainWindow.Show();
并且花括号内的类型引用(“MainWindow”)现在是灰色的
1 回答
MainWindow是
Application
类的属性,它返回Window
,此类型没有"inDevMode"属性 . 这就是你得到错误的原因 . 您有命名冲突 .您可以使用命名空间限定
MainWindow
类型的名称,以便能够设置静态属性: