样板程序
using system;
using data;
using IO;class a
{
   public static dataset dataset1 =new dataset();
   private dataset dataset2 =new dataset();
   public void test()
   {
        dataset1=dataset2;
    }}
其中dataset1是静态成员,而dataset2是实例成员。将实例成员赋给静态成员(是否也应该算静态成员访问非静态成员的范畴),程序是没有问题的。

另外帮助文档中提到

非静态类可以包含静态的方法、字段、属性或事件。即使没有创建类的实例,也可以调用该类中的静态成员。始终通过类名而不是实例名称访问静态成员。无论对一个类创建多少个实例,它的静态成员都只有一个副本。静态方法和属性不能访问其包含类型中的非静态字段和事件,并且不能访问任何对象的实例变量(除非在方法参数中显式传递)。 最后一句不能理解
既然静态方法不能访问包含类型中的非静态字段,那方法外定义任何对象(类的实例)都是不能访问的(更不用说对象的实例变量了),这样一来最后一句且不是多此一举。

解决方案 »

  1.   

    既然涉及到了“访问”这个动词那句话中的静态成员就是指静态方法或者静态属性你给的例子中式test1这个实例成员访问实例变量,当然是可以的了如果你在test1前面加上static修饰符试试
      

  2.   

    我也赞成Icedmilk说的,如果只是针对静态方法说的,那就没有问题,因为实例方法既可以访问静态变量,也可以访问实例变量
    public void test()
      {
      dataset1=dataset2;或者
      dataset2=dataset1;
      }
    都是没有问题的。
    但是有时概念说得很笼统,统称为静态成员就有点不能理解了。