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。