C#入门者对“实例方法”与“静态方法”的疑问!
各位论坛上面的朋友:下面的静态方法和实例方法是自己GOOGLE得来的,希望有朋友可以耐心地帮忙解答自己提出来的三个问题,并且用例子来说明问题,万分感激!   
 静态方法: 
 静态方法是不属于特定对象的方法,静态方法可以访问静态成员变量,静态方法不可以直接访问实例变量,可以在实例函数调用的情况下,实例变量做为参数传给静态方法。静态方法也不能直接调用实例方法,可以间接调用,首先要创建一个类的实例,然后通过这一特定对象来调用静态方法。     
 实例方法: 
 一个实例方法的执行与特定对象关联,他的执行需要一个对象存在。实例方法可以直接访问静态变量和实例变量,实例方法可以直接访问实例方法、和静态方法,静态方法的访问方式为类名加点操作符加变量名。当多个实例对象存在时,内存中并不是存在某个特定的实例方法的拷贝,而是,相同类的所有对象都共享每个实例方法的一个拷贝(实例方法只占用“一套”空间)。   
 问题:   
 问题1:能不能用一个例子来说明,静态方法如何不可以直接访问实例变量,但可以在实例函数调用的情况下,实例变量做为参数传给静态方法?   
 问题2:静态方法如何不能直接调用实例方法,但可以间接调用,另外,如何创建一个类的实例,然后通过这一特定对象来调用静态方法。请帮忙举一个例子来说明?     
 问题3:能不能也用一个简单的例子来说明以上的“实例方法呢?” 
------解决方案--------------------问题1: 
 class A{ 
  private int var1; -> 这是实例变量,有实例的时候才有她   
  public static GetRes(){ 
      return var1;  -> 调用静态方法的时候不需要类型实例,没有实例就没有var1,那么这里就不能访问实例变量var1 
  } 
 }
------解决方案--------------------//问题1 
 namespace cppShooter 
 { 
     public class A 
     { 
         public int x; 
         public int y; 
         public A() { } 
         public static int ADD(int a, int b) 
         { 
             // 不可以直接访问实例变量 
             // a = x;    
             return a + b; 
         } 
     } 
     public class B 
     { 
         public B() 
         { 
             A aClass = new A(); 
             aClass.x = 10; 
             aClass.y = 5;   
             // 参数引用 
             Console.WriteLine(A.ADD(aClass.x, aClass.y)); 
         } 
     } 
 } 
------解决方案--------------------静态方法是有类的时候就有的 
 没办法知道这个类有没有实例 
 也就是说,静态方法,并不知道实例变量是不是存在 
 当然就不能调用了   
------解决方案--------------------问题2:原理跟问题1是一样地!!   
 实例方法可以直接访问静态变量和实例变量 
 ===================================================     
    public class A 
     { 
         public int x; 
         public int y; 
         public A() { } 
         public void PopAdd() 
         { 
             // 直接引用静太方法 
             Console.WriteLine(ADD(x, y)); 
         } 
         public static int ADD(int a, int b) 
         { 
             // 不可以直接访问实例变量 
             // a = x;    
             return a + b; 
         } 
     }   
 回答的非常好,条理清楚,学习了。顺便帮忙顶下。