안녕하세요!
다음은 MSDN에 나와 있는 예제 그대로를 SV2008에 그대로 타이핑해서 코딩한 것입니다.
그런데 이게 아주 웃기는 상황이 발생합니다.
아래코드를 그대로 실행시키면
4번 표시된 부분에서 다음과 같은 오류가 발생합니다.
Creating instance of:System.EventArgs
Creating instance of:System.Random
여기까지 표시되고
System.Argumentnullexception:값은 null 일 수 없습니다.
이런 오류가 납니다.
그런데 2번처럼 MSDN 에서 그대로 Ctrl+c,Ctrl+v 해서 붙여놓고 실행하면 정상적으로 실행됩니다.
그래서 혹시 타이핑으로 해서 그런가 싶어 3번처럼 다시한 번 타이핑해서 실행해도 정상실행됩니다.
눈씻고 찾아봐도 1,2,3 이 같은 문자열이고 오타가 없는데 왜 이런 상황이 발생할까요??
class Program
{
private static string intanceSpec = "System.EventArgs;Sytem.Random;System.Exception;System.Object;System.Version";<<=== 1
//private static string intanceSpec = "System.EventArgs;System.Random;System.Exception;System.Object;System.Version";<<== 2
// private static string intanceSpec = "System.EventArgs;System.Random;System.Exception;System.Object;System.Version";<<===3
static void Main(string[] args)
{
string[] instances = intanceSpec.Split(';');
Array instlist = Array.CreateInstance(typeof(object), instances.Length);
object item;
for (int i = 0; i < instances.Length; i++)
{
Console.WriteLine("Creating instance of: {0}", instances[i]);
item=Activator.CreateInstance(Type.GetType(instances[i]));//<<============================== 4
instlist.SetValue(item, i);
}
foreach (object o in instlist)
{
Console.WriteLine("Type: {0}\nValue: {1}\nHashCode: {2}\n", o.GetType().FullName, o.ToString(), o.GetHashCode());
}
}
}
[최초 등록일: ]
[최종 수정일: 5/20/2012]