2008年8月7日星期四

【C#】初级C#学习笔记(1)


整数类型

最小值

最大值

sbyte

-128

127

byte

0

255

short

-32768

32767

ushort

0

65535

int

-2147483648

2147483647

uint

0

4294967295

long

-9.22 X 1018

9.22 X 1018

ulong

0

1.84 X 1019

* 变量名称前面有"u" 的,是UNSIGNED的缩写,表示这种类型只能存储正数,不能存储负数。

实数类型

最大近似值

最小近似值

decimal

1.0 X 10-28

7.9 X 1028

float

1.5 X 10-45

3.4 X 1038

double

5.0 X 10-324

1.7 X 10308

字符和布尔

char

一个Unicode字 符,存储0~65535之间的整数

string

无上限的一组字符(使用可变大小的内存存储)

bool

true或者false

字面值

类型

类别

后缀

示例/允 许的值

bool

布尔

无

true或flase

int,uint,
long,ulong

整数

无

100

uint,ulong

整数

u 或 U

100U

long,ulong

整数

l 或 L

100L

ulong

整数

ul,uL,Ul,UL,
lu,lU,Lu,LU

100UL

float

实数

f 或 F

1.5F

double

实数

无 或 d 或 D

1.5

decimal

实数

m 或 M

1.5M

char

字符

无

a',或转义序列

string

字符串

无

"a…a",可 以包含转义序列

字符串的字面值(转义序列)

转义序列

产生的字符

字符的Unicode值

\'

单引号

0x0027

\"

双引号

0x0022

\\

反斜杠

0X005C

\0

空

0X0000

\a

警告(产生蜂鸣)

0X0007

\b

退格

0X0008

\f

换页

0X000C

\n

换行

0X000A

\r

回车

0X000D

\t

水平制表符

0X0009

\v

垂直制表符

0X000B

· "This\'s A" 等价于 "This\u0027s A"

· 如果双引号字符串中包括换行等字符,可以在整串字符前加入@字符表示

"C:\\TEMP\\MYDIR\\MYFILE.DOC" 可以写成 @"C:\TEMP\MYDOR\MYFILE.DIC"

变量的4种 声明形式:

int xSize,ySize;

int age=25;

int xSize=4,ySize=5;

int xSize,ySize=5; 此时xSiza仅是声明,并无赋值操作。

字符串运算符

运算符

类别

示例表达式

结果

+

二元

v1=v2+v3;

V1的值是存储在v2与v3中字符串的连接值

数学运算符

运算符

类别

示例表达式

结果

+

二元

v1=v2+v3;

V1的值v2与v3的和

-

二元

v1=v2-v3;

V1的值v2与v3的差

*

二元

v1=v2*v3;

V1的值v2与v3的乘积

/

二元

v1=v2/v3;

V1的值v2除 以v3的值

%

二元

v1=v2%v3;

V1的值v2除 以v3的余数

+

一元

v1=+v2;

V1的值等于v2的 值 *

-

一元

v1=-v2;

V1的值等于v2的 值乘以-1

++

一元

v1=++v2;

V1的值是v2+1,v2递增1

--

一元

v1=--v2;

V1的值是v2-1,v2递减1

++

一元

v1=v2++;

V1的值是v2,v2递增1

--

一元

v1=v2--;

V1的值是v2,v2递减1

· ++ 总是使操作数加1; --总是使操作数减1

· 运算符在操作数前面,则操作数先计算,再赋值;

运算符在操作数后面,则是操作数先赋值,再计算。

赋值运算符

运算符

类别

示例表达式

结果

=

二元

v1=v2;

v1被赋值v2的 值

+=

二元

v1+=v2;

v1被赋值v1与v2的和

-=

二元

v1-=v2;

v1被赋值v1与v2的差

*=

二元

v1*=v2;

v1被赋值v1与v2的乘积

/=

二元

v1/=v2;

v1被赋值v1除 以v2的值

%=

二元

v1%=v2;

v1被赋值v1除 以v2的余数

·*= 也可以用与字符串,同+运算符

布尔逻辑运算

运算符

类别

示例表达式

结果

==

二元

v1=v2==v3;

若v2等 于v3,v1为true,否则v1为false

!=

二元

v1=v2!=v3;

若v2不 等于v3,v1为true,否则v1为false

<

二元

v1=v2

若v2小 于v3,v1为true,否则v1为false

>

二元

v1=v2>v3;

若v2大 于v3,v1为true,否则v1为false

<=

二元

v1=v2<=v3;

若v2小于或等于v3,v1为true, 否则v1为false

>=

二元

v1=v2>=v3;

若v2大于或等于v3,v1为true, 否则v1为false

!

二元

v1=!v2;

逻辑非,(v1是v2的相反值,取反)

&

二元

v1=v2&v3;

逻辑与,(若v2和v3都为true,v1的值为true,否则为false)

|

二元

v1=v2|v3;

逻辑或,(若v2或v3至少有一个为true,v1的值为true,否则为false)

^

二元

v1=v2^v3;

逻辑异或,(若v2或v3有且只有一个为true,v1的值为true,否则为false)

&&

二元

v1=v2&&v3;

结果同&运算

||

二元

v1=v2||v3;

结果同|运算

·&&和||存在的必要性:

1) 性能比&和|要好,因为&&和||仅检查第一个操作数的值,如果第一个已经为false, 那么&&的结果必然是fasle而 不必检查第二个操作数的值;同理如果第一个已经为true,那么||的结果必然是true。

2) 可以避免一些复杂计算的错误,因为&和|要计算全部的操作数的值。例如:

v1= (v2 !=0 ) &(v3 / v2 > 2);

如果v2的 值为0,则v3/v2将会产生"除0错误",导致整个表达式的错误。

位操作

位1

位2

&结果

|结果

^结果

~(取反位)【位1】 结果

1

1

1

1

0

0

1

0

0

1

1

0

0

1

0

1

1

1

0

0

0

0

0

1

左、右移位操作

运算符

类别

示例表达式

结果

>>

二元

v1=v2>>v3;

把v2的 二进制值向右移动v3位(空出位置补0), 得到v1的值。

int v1,v2=10; v1=v2>>1;

10二进制为1010, 右移1位后为101,结果为5

<<

二元

v1=v2<

把v2的 二进制值向左移动v3位(空出位置补0), 得到v1的值。

int v1,v2=10; v1=v2>>2;

10二进制为1010, 左移2位后为101000,结果为40

·实际 上,每向左移动一位,该书要乘以2;每向右移动一位,则是操作数除以2并丢掉余数。

布尔赋值运算符

运算符

类别

示例表达式

结果

&=

二元

v1 &= v2;

v1的值是v1与v2逻辑与的结果

|=

二元

v1 |= v2;

v1的值是v1与v2逻辑或的结果

^=

二元

v1 ^= v2;

v1的值是v1与v2逻辑异或的结果

>>=

一元

v1 >>= v2;

把v1的二进制值向右移动v2位,得到v1新值

<<=

一元

v1 <<= v2;

把v1的二进制值向左移动v2位,空出的位补0,得到v1新值

运算符优先级

优先级

运算符

高

|

|

|

|

|

|

低

++,--(用作前缀,如v1= ++v2;),(),+,-(一元),!,~

*,/,%

+,-

<<,>>

<,>,<=,>=

==,!=

&

^

|

&&

||

=,*=,/=,%=,+=,-=,<<=,>>=,&=,^=,|=

++,--(用作后缀,如v1=v2++;)

没有评论: