내 응용 프로그램에서 모든 사용자를 가져 오도록 요청하고 사용자 개체를 ArrayList에 저장합니다.C# 개체 유형 변경
이제 사용자 Arraylist가 있습니다. 사용자 목록을 반복하고 콤보 상자를 채 웁니다.
userList = Program.GetALLUsers();
foreach (User user in userList)
{
cmbUserList.Items.Add(user.displayName);
}
cmbUserList.SelectedIndex = 0;
내 다음 함수는 User 객체를 Param으로받는 사용자 세부 정보를 가져 오므로 특정 사용자 객체의 세부 정보를 가져올 수 있습니다.
이제 getUserDetials 단추를 클릭하면 선택한 인덱스가 콤보 상자 (Arraylist의 동일한 인덱스 여야 함)에서 가져와 getUserDetails 함수에 전달됩니다. 이 예제에서 나는 단지 인덱스 1을 하드 코딩했다.
User currentUser = userList[0];
그것은 객체 유형을 사용자에게 변환 할 수 없다고 말한다.
Anyideas 어떻게해야합니까?
User currentUser = (User)userList[0];
그러나, 당신이 List<User>
대신 ArrayList
의를 사용하여 더 나을 것 :
왜 'List'을 사용하지 않습니까? 'ArrayList'가 필요할 때가 오기까지 오랜 시간이 걸렸습니다. –
당신은 다운 캐스트해야합니다. 'ArrayList'에있는 모든 것은'object'로 저장됩니다. (더 이상 사용되지 않는 이유 중 하나입니다.) – BradleyDotNET
'User currentUser = (User) userList [0]'하지만, .NET 2.0 이상을 사용한다면 [목록'] (https://msdn.microsoft.com/en-us/library/6sh2ey19 (v = vs.110) .aspx)을 대신 사용해야합니다. –