C#将变量声明为if语句

时间:2013-02-12 08:23:55

标签: c# variables if-statement

我想用C#做这样的事情:

if (i == 0)
{
 button a = new button();
}
else
{
 TextBlock a = new TextBlock();
}
mainpage.children.add(a);

但我收到错误

  

错误1当前上下文中不存在名称“a”

有什么想法吗?

提前谢谢你!

4 个答案:

答案 0 :(得分:16)

您需要buttonTextblock派生的公共基类,如果要在{{1}之后访问它,则需要在if语句之外声明它}} 完成了。可能if

Control

不知道你正在使用什么特定的控制工具包(WPF可能?)我无法进一步建议。但我会查看Control a; if (i == 0) { a = new button(); } else { a = new TextBlock(); } mainpage.children.add(a); 的签名以获得线索 - 声明的参数是什么?

答案 1 :(得分:6)

尝试在if / else范围之外声明a。像这样:

Control a;
if (i == 0)
{
  a = new button();
}
else
{
  a = new TextBlock();
}
mainpage.children.add(a);

答案 2 :(得分:4)

您需要在父作用域中声明您的变量并为其提供一个公共基类。 System.Windows.Controls.TextBlockSystem.Windows.Controls.Button的公共基类可以是System.Windows.UIElementSystem.Windows.FrameworkElement。所以你的代码看起来像这样:

UIElement a;
if (i == 0)
{
    a = new Button();
}
else
{
    a = new TextBlock();
}
mainpage.children.add(a);

答案 3 :(得分:3)

我在这里找到了关于在条件中声明和分配变量的讨论:http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/11a423f9-9fa5-4cd3-8a77-4fda530fbc67

似乎无法在C#中完成,即使您可以使用其他语言