C#在if语句中声明变量
本文关键字:声明 变量 语句 if | 更新日期: 2023-09-27 17:58:56
我想用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的作用域之外声明a
。像这样:
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#中完成,即使您可以在其他语言中完成