Customer [] customer = (Customer[])myArrayList.ToArray();강력하게 형식화된 배열을 반환하려면 개체 형식을 매개 변수로 받아들이는 오버로드된 ToArray 메서드를 사용하십시오. 예를 들어 다음 문은 성공합니다.
Customer [] customer = (Customer[])myArrayList.ToArray(typeof(Customer));
참고: C#에서는 암시적 캐스팅이 허용되지 않으므로 ToArray 메서드의 결과를 명시적으로 캐스팅해야 합니다.
중요: ArrayList의 요소는 개체 형식이 모두 같아야 합니다. 다른 개체로 이루어진 ArrayList를 특정 형식으로 캐스팅하려고 하면 ToArray 메서드가 실패합니다.
단계별 예제
using System;
using System.Collections;
class Class1
{
[STAThread]
static void Main(string[] args)
{
customer c = new customer();
c.cname = "anonymous";
ArrayList al=new ArrayList();
al.Add(c);
object[] cArray = al.ToArray();
//Display the type of the ArrayList.
Console.WriteLine(cArray.GetType());
//customer[] custArray = (customer[])(al.ToArray());
//InvalidCastException 예외를 재현하려면 위의 주석문을 해제하고.
// 아래 명령을 주석처리 하여 실행하십시오.
customer[] custArray = (customer[])al.ToArray(typeof(customer));
Console.WriteLine(custArray.GetType());
}
}
class customer
{
public string cname;
}
'programming > c#' 카테고리의 다른 글
Creating a Windows (NT) Services (0) | 2005.01.05 |
---|---|
[펌] Asynchronous Socket Programming in C# (0) | 2005.01.01 |
.NET Enterprise Services 성능 (0) | 2004.12.23 |