天天看點

C#入門經典劄記_Chapter3_變量和表達式

C#入門經典_劄記

Chapter 3:

3.1 C#的基本文法

1.無論代碼中是否有空格、回車符或tab字元(這些字元統稱為空白字元),C#編譯器都不考慮這些字元。

3.2 變量

1.計算機中所有的資料都是相同的東西(一組0、1),但是變量有不同的内涵,成為類型。建立這個類型系統的原因是,不同類型的資料需要用不同的方法來處理。變量限定為不同的類型,可以避免混淆它們。例如,在處理,組成數字圖檔的0、1序列群組成聲音的0、1序列,其處理方式是不同的。

2.可以使用的變量類型是無限多的,因為可以自己定義類型,存儲各種複雜的資料。

3.2.1 簡單類型

1.簡單類型就是組成應用程式中基本組成部件的類型,如,數值和布爾值。

2.簡單類型與複雜類型是不同的,不能有子類型或屬性。 

3.數值類型過多的原因是在計算機記憶體中,把數字作為一系列0、1來存儲的機制。

4.數值類型表:

整型:

類型

别名

允許的值

sbyte

System.SByte

在 -128~127之間的整數

byte

System.Byte

在 0~255之間的整數

short

System.Int16

在 -32768~32767之間的整數

ushort

System.UInt16

在 0~65535之間的整數

int

System.Int32

在 -2147483648~2147483647之間的整數

uint

System.UInt32

在 0~4294967295之間的整數

long

System.Int64

在 -9223372036854775808~9223372036854775807之間的整數

Ulong

System.UInt64

在0~18446744073709551615之間的整數

浮點:

float

System.Single

double

System.Double

decimal

System.Decimal

字元:

bool

System.Boolean

true/flase

char

System.Char

一個unicode字元,存儲0~65535之間的整數

string

System.String

一組字元

Note:

1.這些類型中的每一種都利用了.net framework中定義的标準類型。使用标準類型可以在語言之間互動操作。在C#中這些類型的名稱是framework中定義的别名。

2.string字元數沒有上限,因為它可以使用可變大小的記憶體。字元串是引用類型,是以字元串可以被賦予null值,即字元串變量不引用字元串。

3.3.2變量的命名

基本命名規則如下:

1.變量名的第一個字元必須字母、下劃線或者@。

2.其後的字元可以說是字母、下劃線或者數字。

Microsoft建議:

對于簡單的變量,使用camelCase規則;對于比較進階的命名室友PascalCase。

3.3.3字面值

轉義序列

産生的字元

字元的Unicode值

\’

單引号

0x0027

\”

雙引号

0x0022

\\

反斜杠

0x005C

\0

0x0000

\a

警告(産生蜂鳴)

0x0007

\b

倒退

0x0008

\f

換頁

0x000C

\n

換行

0x000A

\r

回車

0x000D

\t

水準制表符

0x0009

\v

垂直制表符

0x000B

Notice:

Unicode值是字元在Unicode字元集中16進制值。該轉移序列包括标準的“\”字元,後跟一個u和4位16進制值。

如:” wyh \’s  blog ” 等價于 ” wyh \u0027s blog ”

3.3.4變量的聲明和指派

1.同時聲明多個類型相同的變量。

int xsize, ysize ;

3.4表達式

1.運算符的很廣泛,有簡單的,也有複雜的,複雜的操作則包括通過變量内容的二進制表示來處理它們。

3.4.1數學運算符

1.+(一進制)  : 

 var1=-var2 ;   //var1=var2*-1 

 var1=+nar2 ;  

+運算符對結果沒有影響。他不會把值變成正的:假如var2=-1,那麼+var2表達式的值還是等于-1。這個運算符最有用的方面是,可以定制它的操作,運算符的重載。

2.對bool變量使用數學運算符,編譯器會報錯。

3.Char變量的想家也會有點讓人摸不着頭腦。記住,char變量實際上存儲的是數字,是以把兩個char變量加在一起也會得到一個數字(int類型,隐式轉換)。

4.String變量能使用的數學運算符隻有+。還有指派運算符+=。

5.遞增、遞減運算符:

運算符

類别

示例

結果

++

Var1=++var2

Var1

--

Var1=--var2

Var1=var2++

Var1=var2--

1.++總是使操作數加1;

2.--總是使操作數減1。

3.4.2指派運算符

= 、 += 、 -= 、 *= 、/=  、 %=

3.4.3運算符的優先級

優先級

++,--(字首)、+,-(一進制)

*,/,%

+,-

=,*=,/=,%=,+=,-=

++,--(字尾)

3.4.4名稱空間

1.名稱是由名稱空間唯一定義的,可以在levelone和leveltwo名稱空間中定義namethree:

namespace levelone

{

//name “namethree” defined

namespace leveltwo

}

        }

2.using 語句的意思是“我們需要使用這個名稱空間的名稱,是以不要每次總是要求對它們分類”。例如,下面代碼中,levelone名稱空間中的代碼可以通路levelone.leveltwo名稱空間中的名稱,而無需分類:

using levelone;

//name “namewo” defined

Levelone名稱空間中的代碼現在可以直接使用nametwo引用leveltwo.nametwo。

繼續閱讀