C#入門經典(基礎部分一)

1.1     什麼是.NET Framework

.NET FrameworkMicrosoft爲開發應用程序創建的一個平臺。通過它可以創建Windows應用程序、Web應用程序、Web服務和其他類型的應用程序。

1.2     .Net Framework的內容

.Net Framework主要包含一個非常大的代碼庫。它定義了一些基本類型,稱爲通用類型系統(Common Type System, CTS),它還包含了.NET 公共語言運行時(Common Language Runtime, LCR)它負責管理用.NET庫開發的所有應用程序的執行。

1.3     什麼是C#

C#是可用於創建要運行在.NET CLR上的應用程序語言之一。

1.4     執行程序

F5啓動調試

Ctrl+F5 不調試,直接運行

 

1.5     簡單數據類型

這些類型中的每一種都利用了.NET Framework中定義的標準類型。

C#中這些類型的名稱是.NET Framework中定義的別名。

 

(整數)

類型

別名

允許的值

sbyte

System.SByte

[-128, 127]

byte

Syste.Byte

[0, 255]

short

System.Int16

[-32767, 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

1.5*10(-45)

3.4*10(38)

double

System.Double

5*10(-324)

1.7*10(308)

decimal

System.Decimal

1.0*10(-28)

7.9*10(28)

除了數值類型外,還有三種簡單數據類型:

類型

別名

允許的值

Char

System.Char

一個Unicode字符,0-65535之間的整數

bool

System.Boolean

布爾值:truefalse

string

System.String

一組字符

 

1.6     變量的命名

基本的變量命名規則如下:

l  變量名的第一個字符必須是字母,下劃線或者@

l  其後的字符可以是字母、下劃線或數字

 

命名約定:

.NET Framework名稱空間中有兩種命名約定,稱爲PascalCasecamelCase

PasscalCase約定:名稱中的每個單詞除了第一個字母大寫外,其餘都是小寫

camelCase約定:第一個單詞以小寫字母開頭

 

1.7     字面值

類型

類別

後綴

範例/允許的值

Bool

布爾

true/false

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…”

 

1.8     字符串的字面值

下表爲可以在字符串的字面值中使用的轉義序列

轉義序列

產生的字符

Unicode

/’

單引號

0x0027

/”

雙引號

0x0022

//

反斜槓

0x005C

/0

0x0000

/a

警告(響鳴)

0x0007

/b

退格

0x0008

/f

換頁

0x000C

/n

換回

0x000A

/r

回車

0x000D

/t

水平製表符

0x0009

/v

垂直製表符

0x000B

也可以逐字地指定字符串,即兩個雙引號之間的所有字符都包含在字符串中,包括行末字符和需要轉義的字符。

 

如:”Karli/’s name”

   @”Karli’s name”

 

1.9     變量聲明和賦值

變量在使用前,必須被初始化,否則編譯將出錯。可以先定義變量然後賦值,也可以定義的時候就賦值。

 

2.0 數學運算符

         5個簡單的數學運算符,其中2個有一元和二元兩種形式。

        

運算符

類別

範例

結果

+

二元

var1=var2+var3;

求和後將結果賦值給var1

-

二元

var1=var2-var3;

相減後將結果賦值給var1

*

二元

var1=var2*var3;

相乘後將結果賦值給var1

/

二元

var1=var2/var3;

相除後將結果賦值給var1

%

二元

var1=var2%var3;

求餘後將結果賦值給var1

+

一元

var1= +var2;

var1的值等於var2的值

-

一元

var1= -var2;

var1的值等於var2的值乘-1

 

         遞增遞減運算符

運算符

類別

範例

結果

++

一元

var1= ++var2;

var1的值是var2+1 var2遞增1

--

一元

var1= --var2;

var1的值是var2-1 var2遞減1

++

一元

var1= var2++;

var1的值是var2  var2遞增1

--

一元

var1= var2--;

var1的值是var2  var2遞減1

 

         賦值運算符

運算符

類別

範例

結果

=

二元

var1=var2;

var1被賦值爲var2的值

+=

二元

var1+=var2;

var1 = var1 + var2;

-=

二元

var1-=var2;

var1 = var1 – var2;

*=

二元

var1*=var2;

var1 = var1 * var2;

/=

二元

var1/=var2;

var1 = var1 / var2;

%=

二元

var1%=var2;

var1 = var1 % var2;

 

         運算符優先級

優先級

運算符

優先級由高到低

++, --(用作前綴), +, -(一元)

* , /, %

+, -

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

++, --(用於後綴)

 


流程控制

 

1.  布爾邏輯

六個比較運算符:== != < > <= >=

四個位運算符:& | ^ ~

四個布爾運算符:! & | ^

兩個布爾運算符:&& ||

兩組布爾運算符計算的結果一樣。只是後者性能較好!作爲一個規則,儘可能使用&&||運算符。

 

2.      移位運算符

         >> 右移操作符

         << 左移操作符

 

3.      布爾賦值運算符

         &= |= ^=

 

4.      移位賦值運算符

         >>= <<=

 

5.      運算符優先級

優先級

運算符

優先級由高到低

++--(用作前綴),(),+-(一元),!,~

*/%

+-

<<>>

<><=>=

==!=

&

^

|

&&

||

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

++--(用作後綴)

 

6.      分支

         C#提供三種分支技術:三元運算符、if語句、switch語句

 

         switch語句和C++是有區別的,在C++中,可以運行完一個case後,運行另一個case語句。C#中每個case後必須有break語句,default後也需要用break語句。

         不過這一規則可以有一個例外:如果把多個case語句放在一起(堆疊他們),如

         switch(<testVar>)

         {

         case a:

         case b:

                  

                   break;

         default:

                  

                   break;

         }        則只要條件滿足a或者b都會執行b後面的語句。

 

7.      循環

         do…while語句,while語句,for語句用法和C++一樣。


變量的更多內容

1.       類型轉換

a.隱式轉換

b.顯式轉換

 

2.       枚舉的定義:

enum typeName

{        

value1,

value2,

value3…

valueN

}

接着聲明這個新類型的變量:typeName varName;

並賦值:varName = typeName.value;

 

枚舉使用一個基本類型類存儲。默認情況下該類型爲int。在枚舉聲明中添加類型,可以指定其他基本類型:

enum typeName : underlyingType

{        

value1,

value2,

value3…

valueN

}

枚舉的基本類型可以是byte,sbyte,short,ushort,int,uint,long,ulong

默認情況下,每個值會根據定義的順序(從0開始)自動賦給對應的基本類型值。

 

要獲得枚舉變量的值,可以用顯式類型轉換

要獲得枚舉變量的字符串值,可以使用Convert.ToString()或者用變量本身的ToString()命令。

 

可以把string轉換爲枚舉值,但語法較複雜:

(enumerationType)Enum.Parse(typeof(enumerationType), enumerationValueString);

例子:

string myString = “north”;

orientation myDirection = (orientation)Enum.Parse(typeof(orientation), myString);

 

3.       結構

使用struct關鍵字來定義

struct <typeName>

{

           <memberDeclarations>

}

<memberDeclarations>部分包含變量的定義,格式與往常一樣。每個成員的聲明採用如下形式:

<accessibility> <type> <name>;

要讓調用結構的代碼訪問該結構的數據成員,可以對accessibility使用關鍵字public

 

4.       數組

聲明數組:

<baseType> [] <name>

其中<baseType>可以是任何變量類型,包括前面介紹的枚舉和結構類型。

 

數組在訪問前必須初始化。有兩種方式可初始化數組:

int[] myIntArray = {5,9,10,2,88};

int[] myIntArrat = new int[5];

也可以使用非常理的變量來初始化:

int[] myIntArray = new int[arraySize];

 

還可以用兩種初始化方式的組合:

int[] myIntArray = new int[5]{5,9,10,2,88};

使用這種方式,數組大小必須與元素個數匹配,不能編寫如下代碼:

int[] myIntArray = new int[10]{5,9,10,2,88};

 

如果這種組合方式用變量來定義大小,則會編譯失敗。大小必須用一個常量:

const int arraySize = 5;

int[] myIntArray = new int[arraySize[] {5,9,10,2,88};

 

for each遍歷數組元素的語法:

foreach(<baseType> <name> in <array>)

{

}

 

string[] friendsName = {“Robert Barwell”, “Mike Parry”, “Jeremy Beacock”};

foreach(string name in friendsName)

{

           Console.writeLine(“Name is {0}”, name);

}

使用這種方法和標準for循環訪問數組的區別是foreach循環對數組的內容是隻讀的,不能改變任何元素的值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章