현재 개체 (학생)를 추가하려고합니다. 학생들로 구성된 객체 목록에 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