静态类和非静态类的区别 静态成员函数为什么不能访问本类中的非静态成员?
静态成员函数为什么不能访问本类中的非静态成员?
程序最终将在内存中执行,变量只有在占用内存中的某个位置时才能被访问。类的静态成员(变量和方法)属于类本身,在加载类时会分配内存,可以通过类名直接访问内存。非静态成员(变量和方法)属于类对象,因此只有在生成类对象(创建类实例)然后通过类对象(实例)访问时才会分配内存。在静态成员中访问类的非静态成员时出错的原因是,当该类的非静态成员不存在时,该类的静态成员已经存在。当然,访问内存中不存在的东西时会出错:类ca{私人:INTA//静态类和非静态类之间的主要区别在于静态类不能被实例化,静态类编译器可以执行检查以确保实例成员不是意外添加的,而C#编译器将自动将其标记为密封。不能在静态类中创建非静态类只有静态方法可以在静态方法中创建,但是可以在非静态类中调用静态方法。静态类的主要功能:
1:只包含静态成员。
2:无法实例化。
3:它是密封的。
4:不能包含实例构造函数。
5:非静态类可以包含静态方法、字段、属性或事件;
6:静态方法和属性不能访问其包含类型中的非静态字段和事件。7:静态方法只能重载,但不能重写,因为静态方法不属于类的实例成员。8:C#不支持静态局部变量(静态变量在方法中定义)。非静态类在使用时必须实例化,并且每次使用时都必须实例化。一般来说,诸如logclass、configclass等静态类可以用于经常使用的类。
静态类和非静态类的区别 静态数据成员不可以被类的对象调用 静态类怎么定义
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。