文档介绍:、标示符、常量、数据类型(enum枚举,struct结构体)、操 作符、循环、数组
一、 程序
现实生活中,程序是指完成某些事务的一种既定方法和过程,可以把程序看成 是一系列动作执行过程的描述。
在计算机世界,程序是指令,即s
15至
16位
8字节/64 位
double d =
decimal(高
精度)
±-28 至
±
Yes
28至
29位
16字节
/128 位
decimal d =
布尔型(逻辑)1种: bool
可能的取值为true和false,占用内存长度1字节/8位。C#中不再有类似于“零等
于flase,非零int值等于true”的变换。,属于CLS.
其他2种:
enum 枚举
枚举的数据类型的声明:[属性(attributes)][访问标识(modifiers)] enum名称(identifier) [:基类型(base-type)] {枚举列表(enumerator-list)}[;]
枚举类型的本意有两点:一是将难以记忆的整型数常量(除char外的8种整型数都可以) 标记为更好理解的变量名。二是引入强类型,在需要采用整形数常量表示的变量之间 建立屏障。虽然每个字符串代表了一个整形数常量,但是具体使用枚举类数据类型的 整型数常量时仍需要强制类型转换。这个整数值在C#默认是int型的。
枚举列表中各个变量的赋值默认是从0开始,递加1的。
例如:enum days:int {Sat, Sun, Mon};取值(int) 为 1 或 enum days:int {Sat=1, Sun, Mon};取值(int) 为2
struct 结构体
用户自定义的值类型数据类型,和类相似也有不同(有篇博客具体介绍过);本身没有继
承这一特点,因此与继承相关的一切(例如抽象方法)结构体均不具备,除了两点
、结构体可以继承(实现)接口。
类
结构体
类型
引用类型
值类型
实例化
必须通过new实例化
可以不new,直接声明,但声明后必须赋值
构造方 法(函数)
方法不受限制(有、无参数均可, 默认疋无参)
方法必须带有参
继承
,可继承
(包含接口 ),也可被继承
,不可继承
(除接口,通常叫做实现接口),也不可被继承
成员
字段声明时可赋值(初始化)
字段声明时不可赋值,方法一般公有
作参数 传递给 方法
传递的是引用(值一但修改所有指 向改类值都已改变)
传递的是实际值(值修改不会影响其它指向值, 除非被ref修饰;ref修饰后传递引用)
性能介绍:结构是值类型,所以会影响性能,但根据使用结构的方式,这种影响 可能是正面的,也可能是负面的。正面的影响是为结构分配内存时,速度非常快,因为它们 将内联或者保存在堆栈中。在结构超出了作用域被删除时,速度也很快。另一方面,只要把 结构作为参数来传递或者把一个结构赋给另一个结构(例如A=B,其中A和B是结构),结 构的所有内容就被复制,而对于类,则只复制引用。这样,就会有性能损失,根据结构的大 小,性能损失也不同。注意,结构主要用于小的数据结构。但当把结构作为参数传递给方法 时,就应把它作为ref参数传递,以避免性能损失一一此时只传递了结构在内存中的地址, 这样传递速度就与在类中的传递速度一样快了。另一方面,如果这样做,就必须注意被调用 的方法可以改变结构的值。
五、操作符
分类:
赋值操作符:=
复合赋值运算符:
+=, -=, *=, /=, %=
算数运算符:
+,-,*,/,%©二兀运算符),++,--© —兀运算符)
条件运算符:
>,<,>=,<=,!=,==
逻辑运算符:
&&(遇假为假),|| (同真为真),!
位运算符:
备注:
几乎所有的操作符都只能操作基本数据类型,但是”=”,”==”和”!=” , 这些操作符能操作所有的对象。除此以外Stri ng类支持” +”和” +=”。
优先级:
postfix operators
[].(params) expr++ expr--
unary operators
++expr --expr +expr -expr ~ !
creation or cast
new (type)expr
multiplicative
* / %
additiv