静态方法只能访问类的静态成员,不能访问类的非静态成员;哪们高手从原理上能解释下 静态方法只能访问类的静态成员,不能访问类的非静态成员;非静态方法可以访问类的静态成员,也可以访问类的非静态成员;静态方法不能使用实例来调用,只能使用类名来调用对于上面三句话只能从表面上理解,但并不知其为什么这样,为什么静态方法不能访问问的非静态成员搞不太懂,望高手详解下。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 首先你可以这么想,这就是.netframework的游戏规则。静态方法和静态属性,是在你第一次使用这个类的时候加载到内存中,并且以后都不会消失(理论上),除非程序关掉。而非静态成员必须存在于一个实例化的对象中。也就是必须new一个对象分配到堆中后它才存在。你在没有new对象之前它都不存在,你怎么去访问它?在静态方法里不能访问非静态成员这句话不对,你在方法体里new一个对象后不就能访问了? 静态方法只能访问类的静态成员,不能访问类的非静态成员; 非静态方法可以访问类的静态成员,也可以访问类的非静态成员; 静态方法不能使用实例来调用,只能使用类名来调用 楼主的问题入上面所述。 我的解答如下: 静态方法,是类的方法,也就是与类绑定的,每个类的实例都可以用这儿方法。 非静态成员,这个成员,如果是公有的话,子类也可以引用。所以,它就不能直接被类引用了。 非静态方法 可以访问静态成员,它的访问规则还是那样的class.StaticMethod(). ,非静态成员也可以了,因为他是类的。 就是啊,静态方法不能用实例来调用,因为它是类的,所以直接用类名来访问。class.StaticMethod() 类的静态成员是属于类的而不是属于哪一个对象的,不能通过对象访问,直接用类名访问 静态成员函数由于与对象无关系,所以在其中是不能对类的普通成员进行直接操作的 静态成员函数与普通成员函数的差别就在于缺少this指针,静态成员在类加载时就存在与内存中,与全局函数相比,这样可以减少内存开销。 查询用的数据集 窗体闪 xml问题 下载验证码本地之后,本地的验证码无效了,这是怎么做到的. 字符形转换问数值形进行计算,有什么函数么? 怎么将一个字符穿倒序!!!!!!!!!!!!! c# 操作excell,如何从指定位置开始添加数据? Post自动提交表单 IIS需要在哪配置,极菜的一个问题? 窗体登录问题? mobile web application 里的softkey到底是怎么回事呀 C#配置环境文件vssettings怎么用? 监视鼠标双击事件的问题,请人帮忙!!!
静态方法和静态属性,是在你第一次使用这个类的时候加载到内存中,并且以后都不会消失(理论上),除非程序关掉。而非静态成员必须存在于一个实例化的对象中。也就是必须new一个对象分配到堆中后它才存在。你在没有new对象之前它都不存在,你怎么去访问它?
在静态方法里不能访问非静态成员这句话不对,你在方法体里new一个对象后不就能访问了?
楼主的问题入上面所述。
我的解答如下:
静态方法,是类的方法,也就是与类绑定的,每个类的实例都可以用这儿方法。
非静态成员,这个成员,如果是公有的话,子类也可以引用。所以,它就不能直接被类引用了。
非静态方法 可以访问静态成员,它的访问规则还是那样的class.StaticMethod(). ,非静态成员也可以了,因为他是类的。
就是啊,静态方法不能用实例来调用,因为它是类的,所以直接用类名来访问。class.StaticMethod()
静态成员函数由于与对象无关系,所以在其中是不能对类的普通成员进行直接操作的
静态成员函数与普通成员函数的差别就在于缺少this指针,静态成员在类加载时就存在与内存中,
与全局函数相比,这样可以减少内存开销。