日期:2014-05-18  浏览次数:21081 次

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

------解决方案--------------------
resource.Data.Book.ModifyAR(book);
-------------

Book中的ModifyAr方法是静态的吗?
如果不是一定会报错。

或者你这样调用:

book.ModifyAR(book);

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

Book.ModifyAR是否为静态方法
------解决方案--------------------
ModifyAR()方法内如果调用其他的方法也得是静态的
------解决方案--------------------
resource.Data.Book.ModifyAR(book);
如果不是静态的,编译器内不会自动跳出来的。所以假设Book.ModifyAR是静态方法。然后来看静态方法里面

namespace resource.Data
{
public class Book
{
public static void ModityAR(Book item)
{
// 这里面只能够用到静态外部变量、方法,和所给的item参数,以及内部定义的动态变量
}
}
}