C#将变量声明为if语句
我想用C#做这样的事情:
if (i == 0) { button a = new button(); } else { TextBlock a = new TextBlock(); } mainpage.children.add(a);
但我得到一个错误
错误1当前上下文中不存在名称“a”
有任何想法吗 ?
先感谢您 !
你需要一个button
和Textblock
派生的公共基类,如果要在if
完成后访问它,则需要在if
语句之外声明它。 Control
可能吗?
Control a; if (i == 0) { a = new button(); } else { a = new TextBlock(); } mainpage.children.add(a);
不知道你正在使用什么特定的控制工具包(WPF可能?)我不能进一步建议。 但我会看一下Add
的签名以获得线索 – 参数声明为什么?
尝试声明if / else范围之外。 像这样:
Control a; if (i == 0) { a = new button(); } else { a = new TextBlock(); } mainpage.children.add(a);
您需要在父作用域中声明您的变量并为其提供一个公共基类。 System.Windows.Controls.TextBlock
和System.Windows.Controls.Button
的公共基类可以是例如System.Windows.UIElement
或System.Windows.FrameworkElement
。 所以你的代码看起来像这样:
UIElement a; if (i == 0) { a = new Button(); } else { a = new TextBlock(); } mainpage.children.add(a);
我在这里找到了关于声明和分配变量的讨论: http : //social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/11a423f9-9fa5-4cd3-8a77-4fda530fbc67
它似乎无法在C#中完成,即使您可以使用其他语言