ArrayList

ArrayList예제 참고자료: http://dotnetperls.com/arraylist

ArrayList pArray = new ArrayList();
pArray.Add(person1);
pArray.Add(student1);
pArray.Add(faculty1);


// 만약 Person,Student,Faculty 객체를 하나만 생성한 후 for문에서 공유해 사용할 경우
// 마지막으로 입력된 데이터로 모든 데이터값이 치환됨
Person p = new Person();
for (int i = 0; i < 5; i++) {
    p.Name = Console.ReadLine();           // 입력정보
    p.ID = int.Parse(Console.ReadLine()); // 입력정보
    p.Phone = Console.ReadLine();          // 입력정보
    p.Address = Console.ReadLine();       // 입력정보
    pArray.Add(p);                                  // 리스트에 들어간 모든 원소는 동일한 p
}

// 아래와 같이 for문 안에 Person p = new Person()와같이 새로운 객체를 생성해야
// 각자 다르게 입력된 정보가 들어가게 됨
for (int i = 0; i < 5; i++) {
    Person p = new Person();
    p.Name = Console.ReadLine();           // 입력정보
    p.ID = int.Parse(Console.ReadLine()); // 입력정보
    p.Phone = Console.ReadLine();          // 입력정보
    p.Address = Console.ReadLine();       // 입력정보
    pArray.Add(p);                                  // 이때 p는 새로운 Person객체
}


 


// pArray의 원소를 Object형으로 받아서 처리할 경우 아래와같이 함
foreach (Object pt in pArray)
{
   if (pt is Person)
   {
      ((Person)pt).Print();
   }
   if (pt is Student)
   {
      ((Student)pt).Print();
   }
   if (pt is Faculty)
   {
      ((Faculty)pt).Print();
   }
}


// 아래와 같이 pArray 원소를 Person형으로 받아서 처리할 경우 pt.Print()만 호출하면
// 복잡한 형변환 과정이 필요없이 객체 형에 따라서 재정의된 메소드가 자동호출
foreach (Person pt in pArray)
{
    pt.Print();
}

Leave a Reply

Your email address will not be published. Required fields are marked *