C#将变量声明为if语句

Dim*_*kas 8 c# variables if-statement

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

if (i == 0)
{
 button a = new button();
}
else
{
 TextBlock a = new TextBlock();
}
mainpage.children.add(a);
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误

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

有任何想法吗 ?

先感谢您 !

Dam*_*ver 16

你需要一个共同的基类,都buttonTextblock从派生,它需要以外的声明if语句,如果它是之后要访问的if是完整的.Control也许?

Control a;
if (i == 0)
{
 a = new button();
}
else
{
 a = new TextBlock();
}
mainpage.children.add(a);
Run Code Online (Sandbox Code Playgroud)

不知道你正在使用什么特定的控制工具包(WPF可能?)我无法进一步建议.但我会查看签名Add以获得线索 - 参数声明为什么?


Yaa*_*lis 6

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

Control a;
if (i == 0)
{
  a = new button();
}
else
{
  a = new TextBlock();
}
mainpage.children.add(a);
Run Code Online (Sandbox Code Playgroud)