(1)数据栈储存的数据类型
某些类型变量的值。
程序执行的当前环境。
传递给方法的参数。
(2)变量
变量是程序执行时储存在内存中的数据。变量的种类有
1.本地变量 在方法的作用域保存的临时数据
2.字段 保存和类型或类型实例相关的数据
3.参数 用于从一个方法到另一个方法传递数据的临时变量
4.数组元素 数据项构成的有序集合的成员
(3)本地变量和字段的区别
1.生存期
字段是从实例被创建时开始,知道实例不再被访问时结束。
本地变量是在它的块中被声明处开始,在块完成执行时结束。
2.隐式初始化
字段是能够初始化该类型的默认值。
本地变量不能隐式初始化;如果变量在使用之前没有被赋值,编辑器会报错。
3.存储区域
类的所有字段都是存储在堆里,无论是引用类型还是值类型。
本地变量是值类型存储在栈里;引用类型的引用储存在栈里,数据存储在堆里。
(4)使用var的条件
1.只能用于本地变量,而不能用于字段
2.只能在变量声明中包含初始化时使用
3.一旦编译器推断出变量的类型时,var就是固定的,且不可修改
2.只能在变量声明中包含初始化时使用
3.一旦编译器推断出变量的类型时,var就是固定的,且不可修改
(5)&和|运算符
当&和|作为条件布尔运算符时,其会计算运算符两边的值然后比较得出结果;
而&&和||会首先运算符左边的值,如果左边的值可以直接得出结果,就不会在计算运算符右边的值,这样相较&和|会提升效率。
此外,使用&&和||可以有效避免只有左边的值满足条件下,才能计算右边的值的情况。
例如:var1 = (var2!=0)&&(var3/var2);
如果采用&运算符,则系统会计算右边的值,这样的话,当var2时,就会产生“除0错误”,&&则可以避免这种情况的发生。
注:布尔赋值运算符&=和|=中的&和|为条件布尔运算符中的&和|,即无论左侧的值是什么,都会处理右边的操作数。
类定义中可以使用得访问修饰符得组合
无或internal 只能在当前项目中访问类
public 可以在任何地方访问类
abstract 或 internal abstract 类只能在当前项目中访问,不能实例化,只能供继承之用
public abstract 类可以在任何地方访问,不能实例化,只能供继承之用
seal 或 internal sealed 类只能在当前项目中访问,不能供派生之用,只能实例化
public sealed 类可以在任何地方访问,不能供派生之用,只能实例化
无或internal 只能在当前项目中访问类
public 可以在任何地方访问类
abstract 或 internal abstract 类只能在当前项目中访问,不能实例化,只能供继承之用
public abstract 类可以在任何地方访问,不能实例化,只能供继承之用
seal 或 internal sealed 类只能在当前项目中访问,不能供派生之用,只能实例化
public sealed 类可以在任何地方访问,不能供派生之用,只能实例化