反復処理によってリストに値を追加する方法はありますか?私はすべての変数を宣言したフォームとすべての情報を収集するクラスを持っています。しかし、私はコードを繰り返してコードを繰り返す代わりに、これをすべてコードに追加する方法を学ぼうとしています。私は各要素は、各行のクラスフィールド名のマップとそれに対応する値であろうれたシーケンスを構築するであろう全てのC#反復名でリストに変数を追加する
namespace WinForm
{
public partial class Form_Destrezas : Form
{
//Fields
Tab_Destreza Personales;
Tab_Destreza Salud;
Tab_Destreza Participacion;
Tab_Destreza Convivencia;
Tab_Destreza Limpieza;
Tab_Destreza Alimentos;
Tab_Destreza Ropa;
Tab_Destreza Libre;
Tab_Destreza Futuro;
public Form_Destrezas()
{
Personales.AddRow(Personales_1RowNoApp,
Personales_1RowNoDom,
Personales_1RowEnPro,
Personales_1RowDomina,
Personales_1RowCheckBox)
//What I want to do
for (int i = 0; i <= 10; i++)
{
Personales.AddRow(Personales_[i]RowNoApp,
Personales_[i]RowNoDom,
Personales_[i]RowEnPro,
Personales_[i]RowDomina,
Personales_[i]RowCheckBox)
}
this.Text = $"Destrezas - {StudentData.Name}";
InitializeComponent();
}
private void Personales_1RowNoDom_CheckedChanged(object sender, EventArgs e)
{
Personales.checkRow();
}
}
/// <summary>
/// Data for each row will be collected here.
/// </summary>
public class RowData
{
//Fields
public List<RadioButton> RadioButtons;
public CheckBox TeacherVerified;
public string ActiveStatus = "No Applica";
public bool verified = false;
//Methods
/// <summary>
/// Input row information collection.
/// </summary>
/// <param name="noApp">Radiobutton "No Applica" for Row.</param>
/// <param name="noDom">Radiobutton "No Domina" for Row.</param>
/// <param name="enProc">Radiobutton "En Processo" for Row.</param>
/// <param name="domina">Radiobutton "Domina" for Row.</param>
/// <param name="EviMaestro">CheckBox if was verified.</param>
public void AddRow(RadioButton noApp, RadioButton noDom, RadioButton enProc,
RadioButton domina, CheckBox EviMaestro)
{
var personalesRows = this.GetType().GetTypeInfo();
RadioButtons.Add(noApp);
RadioButtons.Add(noDom);
RadioButtons.Add(enProc);
RadioButtons.Add(domina);
TeacherVerified = EviMaestro;
checkRow();
}
/// <summary>
/// Collects Data from row.
/// </summary>
public void checkRow()
{
foreach (var Button in RadioButtons)
{
if (Button.Checked)
{
ActiveStatus = Button.Text;
}
}
if (TeacherVerified.Checked == true)
{
verified = TeacherVerified.Checked;
}
}
}
public class Tab_Destreza : RowData
{
}
}
'for(int i = 1; i == 10; i ++)'(int i = 1; i <= 10; i ++) 'の意味ですか? –
はい!しかし、結局のところ、これらの変数はすべてWinFormで宣言しています。私がやろうとしていることは、簡単なアクセスのためにそれらをクラスに追加することです。 – Deovi
あなたは反射を使用する必要があります – Sparrow