先贴代码:
Book book=new Book(); 
  book.Editor=txteditor.Text;
  book.Name =txtname.Text;
  book.Publish=txtpp.Text;
  resource.Data.Book.ModifyAR(book);
我已经实例化了book类,为什么还提示非静态字段需要对象引用,如果是普通方法不是直接实例化就可以了吗?
   当然我如果将类中方法改为静态方法,程序中是没有错误的,请各位指教!

解决方案 »

  1.   

    resource.Data.Book.ModifyAR(book);
    -------------Book中的ModifyAr方法是静态的吗?
    如果不是一定会报错。或者你这样调用:book.ModifyAR(book);
      

  2.   

    静态方法是在程序编译的时候生成到内存里   可以不用实例化就可以直接调用的
    你的ModifyAR 方法不是静态的只能在实例化以后通过对象调用
    book.ModifyAR(book);
      

  3.   

    如楼上所说Book.ModifyAR是否为静态方法
      

  4.   

    ModifyAR()方法内如果调用其他的方法也得是静态的
      

  5.   

    resource.Data.Book.ModifyAR(book);
    如果不是静态的,编译器内不会自动跳出来的。所以假设Book.ModifyAR是静态方法。然后来看静态方法里面namespace resource.Data
    {
    public class Book
    {
    public static void ModityAR(Book item)
    {
    // 这里面只能够用到静态外部变量、方法,和所给的item参数,以及内部定义的动态变量
    }
    }
    }
      

  6.   

    程序中ModityAR不是静态方法,编译的时候如碧海蓝天所说不会自动跳出,也如上面各位谈到的所以我对其进行了实例化:
    Book book=new Book(); 
      book.Editor=txteditor.Text;
      book.Name =txtname.Text;
      book.Publish=txtpp.Text;
      resource.Data.Book.ModifyAR(book);
    现在疑惑的就是在实例化这个非静态函数以后为什么还会出现“要求对象引用的问题”!
      

  7.   

    既然然ModifyAR方法不是静态的,resource.Data.Book.ModifyAR(book);就是错误的。
    book.ModifyAR(book)不就好咯。
      

  8.   

    问题就在于book.ModifyAR(book)也不好,暂时先放下不说了,用了静态方法让程序运行了。
    谢谢各位!等写完这个程序了,再坐下来好好研究吧。