亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用變量名稱作為 foreach 迭代變量并設置其值

使用變量名稱作為 foreach 迭代變量并設置其值

PHP
白豬掌柜的 2024-01-21 10:18:30
我有四個布爾變量。我已將列表初始化radioBtns為每個變量的名稱作為字符串。我想循環遍歷列表中的每個字符串并將每個布爾變量(每個變量與強變量具有相同的名稱)設置為true.我收到這個錯誤:無法分配給“Btn”,因為它是“foreach 迭代變量”bool Q1Button1_True, Q2Button1_True, Q3Button1_True, Q4Button1_True;List<string> radioBtns = new List<string>(new string[] { "Q1Button1_True", "Q2Button1_True", "Q3Button1_True", "Q4Button1_True" });foreach (string Btn in radioBtns){   Btn = true;}
查看完整描述

2 回答

?
寶慕林4294392

TA貢獻2021條經驗 獲得超8個贊

您應該使用數組而不是四個不同的變量:


bool[] QButton_True = new bool[4];

for (int i = 0 ; i < 4 ; i++) {

    QButton_True[i] = true;

}

您不要將它們稱為Q1Button_True, Q2Button_True... ,而是將它們稱為QButton_True[0], QButton_True[1]...


查看完整回答
反對 回復 2024-01-21
?
慕娘9325324

TA貢獻1783條經驗 獲得超4個贊

您可以為此使用反射,但對于這種情況,它可能有點過分了。


如果您只是將所有變量設置為 true,您可能只想將它們設置在源上。


bool Q1Button1_True = true;

bool Q2Button1_True = true;

bool Q3Button1_True = true;

bool Q4Button1_True = true;

另外,如果這是一個會增長的東西,讓我們對 Q 說,n那么你可能想要一個數組,而不是Q1Button1_True你會擁有Button1_True[1].


我假設您將在應用程序的多個部分中執行此操作,因此擁有一些“動態”設置器可能是明智的選擇。在這種情況下,您可以使用反射:


bool Q1Button1_True, Q2Button1_True, Q3Button1_True, Q4Button1_True;


List<string> radioBtns = new List<string>(new string[] { "Q1Button1_True", "Q2Button1_True", "Q3Button1_True", "Q4Button1_True" });


foreach (string Btn in radioBtns)

{

   bool buttonVar = this.GetType().getProperty(Btn).getValue(this, null);

   buttonVar = true;

}

另一種方法是使用類似這樣的東西:


bool Q1Button1_True, Q2Button1_True, Q3Button1_True, Q4Button1_True;


List<string> radioBtns = new List<string>(new string[] { "Q1Button1_True", "Q2Button1_True", "Q3Button1_True", "Q4Button1_True" });


foreach (string Btn in radioBtns)

{

   PropertyInfo buttonVar = this.GetType().GetProperty(Btn);

   buttonVar.SetValue(this, true, null);

}


查看完整回答
反對 回復 2024-01-21
  • 2 回答
  • 0 關注
  • 418 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號