私は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#ではできないようです