一、值类型和引用类型的异同
l值类型的变量内含变量值本身,C#的值类型可以分为简单类型、结构类型和枚举类型。
l和值类型相比,引用类型的变量不直接存储所包含的值,而是指向它所要存储的值。类似C中的指针。
l引用类型有四种:类,接口,数组和委托。
各种值类型之间的转换方式
1. 隐式转换
l2. 显式转换
(类型标识符)表达式
lConvert类
Convert类位于System命名空间中,用于将一个值类型转换成另一个值类型。这些方法都是静态方法,可通过“Convert.方法名(参数)”来使用拆箱和装箱操作
1. 装箱转换
装箱转换是指将一个值类型的数据隐式地转换成一个对象类型的数据。例如,下面语句就执行了装箱转换:
int i=8;
object obj=i;objectobj=(object)i;
2. 拆箱转换
拆箱转换是指将一个对象类型的数据显式地转换成一个值类型数据。例如,下面语句就执行了拆箱转换:
object obj=2;
int i=(int)obj;
拆箱转换需要(而且必须)执行显式转换,这是它与装箱转换的不同之处。
枚举类型的声明
枚举类型使用enum关键字声明,其一般语法形式如下:
enum 枚举名 {枚举成员1,枚举成员2,¼}
在声明枚举类型后,可以通过枚举名来访问枚举成员,其使用语法如下:
枚举名.枚举成员
l其他运算符
lIs运算符
l检查表达式是否是指定类型。(true或false)
lConsole.WriteLine(12.9 isdouble);
lSizeof运算符
lConsole.WriteLine(sizeof(double));
lTypeof运算符
lConsole.WriteLine(typeof(double));
lNew运算符
–数组Array是固定大小的,不能伸缩;而集合却是可变长的。
数组要声明元素的类型,集合类的元素类型却是object。
l在.NET中,类是通过命名空间(namespace)来组织的。
类的文件夹就是命名空间,不同的命名空间内,可以定义许多类。在每个命名空间下,所有的类都是“独立”且“唯一”的。
l1)使用using关键字
l2)自定义命名空间
namespace 命名空间名称
{
命名空间定义体
}
lC#中的属性更充分地体现了对象的封装性,属性不直接操作类的字段,而是通过访问器进行访问。
修饰符 数据类型 属性名称
{
get访问器
set访问器
}