現在、オブジェクト(学生)を追加しようとしています。私はforeachループで生徒で構成されたオブジェクトリストに作成しています。各リストオブジェクトは同じ位置を参照して終了します。したがって、各リストオブジェクトの情報は、ループが終了したときに作成された最後の生徒オブジェクトと同じです。 foreachループを使ってリストにオブジェクトを追加するために私が見つけた唯一の情報は、私がStudent stud = new Student行でやっていると思ったオブジェクトの新しいインスタンスを作成することです。foreachループを使用したリストへの追加
また、デフォルトのコンストラクタを使用し、引数の代わりにプロパティを使用してみましたが、学生をリストに追加しましたが、同じ結果が表示されます。
foreachループを使用してオブジェクトリストにオブジェクトを追加する際の助けがあれば、大歓迎です。
foreachループ:
foreach (DataRow datrow in dt.Rows)
{
Student stud = new Student(
datrow["ID"].ToString(),
datrow["fName"].ToString(),
datrow["lName"].ToString(),
datrow["GPA"].ToString(),
datrow["Graduate"].ToString()
);
studentList.Add(stud);
}
私の学生コンストラクタ:DT
OleDbCommand cmd = new OleDbCommand(strSql, con);
con.Open();
cmd.CommandType = CommandType.Text;
OleDbDataAdapter dc = new OleDbDataAdapter(cmd);
dc.Fill(ds, "ID");
dt = ds.Tables["ID"];
const char DELIM = ',';
foreach (DataRow datrow in dt.Rows)
各オブジェクトが参照すると再であることを "これ" の情報を埋めるために使用
public Student(
string studentID,
string fName,
string lName,
string studentGPA,
string graduate)
{
iD = studentID;
firstName = fName;
lastName = lName;
gPA = studentGPA;
grad = graduate;
}
声明新しいオブジェクトごとに書かれています
結果
結果に問題がありますか?私の画面は、私が画面の頭や尾を小さくすることです。 – Jacobr365
このコードは正しいように見えます。問題が他の場所ではなく、ここにあるとあなたはどのように判断しましたか? – David
また、最初のスクリーンショットでは、コンストラクタの*最初の行*で一時停止したときに、 'this'の値に既に値を設定できますか?それは奇妙に思える。 – David