请问一个关于static的问题
我在看MSDN中的一个例子,不是很明白为什么static   void   ClassTaker(TheClass   c) 
 要声明成static的   我把static去掉 
 就报错   An   object   reference   is   required   for   the   nonstatic   field,   method,   or   property    'ConsoleApplication1.Program.ClassTaker(TheClass) 'using   System;     
 using   System.Collections.Generic; 
 using   System.Text; 
 using   System;   
 class   TheClass 
 { 
             public   string   willIChange;   
 } 
 ...   
 namespace   ConsoleApplication1 
 { 
             class   Program 
             { 
                         static   void   ClassTaker(TheClass   c)   //为什么要申明成static 
                         { 
                                     c.willIChange   =    "changed! "; 
                         }   
                         static   int   Main(string[]   args) 
                         { 
                                     TheClass   testclass   =   new   TheClass(); 
                                     ClassTaker(testclass   ); 
                                     return   0; 
                         } 
             } 
 } 
------解决方案--------------------static表明那个方法属于其所在的类,去掉static在用到那个方法时,要先实例化.去掉static后可以这样用: 
 Program p=new Program() 
 p.ClassTaker(testclass)
------解决方案--------------------去掉 static 就成了实例方法了 
 不能直接调用了 
 ClassTaker(testclass );   
 ClassTaker() 是 class Program 内的方法 
 你看 Program 哪里 new 了 
 没有 
 所以就只能静态调用 
 要静态调用 就必须是 static 的方法
------解决方案--------------------static即静态方法,可以不用实例化该类就可调用此方法。 
 如System.Console.Write()。