我想用 C# 做这样的事情:
if (i == 0)
{
button a = new button();
}
else
{
TextBlock a = new TextBlock();
}
mainpage.children.add(a);
但我得到一个错误
错误 1 当前上下文中不存在名称“a”
有任何想法吗 ?
先感谢您 !
我想用 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
以获得线索 - 声明的参数是什么?
尝试a
在 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# 完成,即使你可以用其他语言