我想要做這樣的事情用C#:C#聲明變量進入if語句
if (i == 0)
{
button a = new button();
}
else
{
TextBlock a = new TextBlock();
}
mainpage.children.add(a);
,但我得到的是
錯誤1名「A」中不存在的錯誤當前背景
任何想法?
謝謝你提前!
我想要做這樣的事情用C#:C#聲明變量進入if語句
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);
謝謝!它總共工作! – 2013-02-12 08:46:10
我發現了一個關於這裏的條件內聲明和分配變量的討論:http://social.msdn.microsoft.com/Forums/en-US/csharplanguage/thread/11a423f9-9fa5-4cd3-8a77-4fda530fbc67
看來它不能在C#來完成,即使你可以用其他語言
謝謝!它總共工作! – 2013-02-12 08:46:54
你需要在父範圍中聲明你的變量,並給它一個公共基類。 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);
謝謝!它總共工作! – 2013-02-12 08:46:31
然而,問題更多的是[範圍](http://msdn.microsoft.com/en-us/library/aa691132(V = vs.71)。 ASPX)。標題:_「將變量聲明爲if語句」_例外:_「在當前上下文中不存在名稱'_' – 2013-02-12 08:27:44
@TimSchmelter說實話,這是分裂的頭髮。這就解決了這個問題,或許是以一種迂迴的方式引導用戶選擇另一種方式,並認爲他們是新手,但仍然如此。 – 2013-02-12 08:34:37
謝謝!它總共工作! – 2013-02-12 08:34:45