안녕하세요!
다음은 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]