私は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しかし、手がかりを得るために署名を調べます-宣言されたパラメーターは何ですか?
aif/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#ではできないようです