C#作爲類C語言,其語法與C/C++語言是類似的。對於那些與C/C++語言一樣的語法,我在學習筆記裏不會再重提。書寫的順序基本和原書《C#入門經典》的順序是一樣的。
一:代碼大綱功能:使用#region和#endregion關鍵字
使用#region和#endregion關鍵字來定義可以展開和摺疊的代碼區域的開頭和結尾。例如,可以像下面那樣將這些代碼行摺疊爲一行
在鼠標點擊#region左側的減號之後,就可以將代碼摺疊爲一行,如圖:
二:C#中的簡單變量類型
1:整數類型
類型 | 別名 | 允許的值 |
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之間的整數 |
2:浮點類型
類型 | 別名 | m的最小值 | m的最大值 | e的最小值 | e的最大值 | 近似最小值 | 近似最大值 |
float | System.Single | 0 | 2的24次方 | -149 | 104 | 1.5 * 10的-45次方 | 3.4 * 10的38次方 |
double | System.Double | 0 | 2的53次方 | -1057 | 970 | 5.0 * 10的-324次方 | 1.7 * 10的308次方 |
decimal | System.Decimal | 0 | 2的96次方 | -28 | 0 | 1.0 * 10的-28次方 | 7.9 * 10的28次方 |
3:文本和布爾類型
類型 | 別名 | 允許的值 |
char | System.Char | 一個Unicode字符 |
bool | System.Boolean | 布爾值:true或false |
string | System.String | 一組字符 |
4:關於別名:別名就是這些類型在.NET Framework庫中的名稱。這種類型中的每一種都利用了.NET Framework中定義的標準類型。
爲什麼要使用標準類型呢?這是因爲使用標準類型可以在語言之間進行交互操作。
三:C#中變量的命名
1:命名規則:和C/C++變量的命名一樣
2:命名約定:
變量:對於簡單變量,使用camelCase規則。對於比較高級的命名規則使用PascalCase規則。
名稱空間:使用PascalCase規則
函數名:使用PascalCase規則
四:名稱空間
1:默認情況下,C#代碼包含在全局名稱空間中。這意味着對於包含在這段代碼中的項,全局空間中的其他代碼只要通過名稱進行引用就可以訪問它們。
可使用namespace關鍵字爲花括號中的代碼塊顯示地定義名稱空間。如果在該名稱空間代碼的外部使用名稱空間中的名稱,就必須寫出該名稱空間中的限定名稱。
2:使用關鍵字namespace定義嵌套的名稱空間。如
namespace LevelOne
{
//code in LevelOne namespace
namespace LevelTwo
{
//code in LevelOne.LevelTwo namespace
//name "NameTwo" defined
}
}
//code in global namespace
同時要注意的是:在全局名稱空間中,NameTwo必須引用爲LevelOne.LevelTwo.NameTwo;在LevelOne名稱空間中,可以引用爲LevelTwo.NameTwo;在LevelOne.LevelTwo名稱空間中,可以引用爲NameTwo
3:名稱空間的引用:使用using語句簡化,如,在下面的LevelOne名稱空間中可以直接使用NameTwo。
namespace LevelOne
{
using LevelTwo;
namespace LevelTwo
{
//name "NameTwo" defined
}
}
4:使用using語句爲名稱空間提供別名來避免不同名稱空間中相同名稱所產生的衝突。
如,在下面的LevelOne名稱空間中可以把LevelOne.NameThree引用爲NameThree,把LevelOne.LevelTwo.NameThree引用爲LT.NameThree
namespace LevelOne
{
using LT = LevelTwo;
//name "NameThree" defined
namespace LevelTwo
{
//name "NameThree" defined
}
}
5:控制檯應用程序中名稱空間的分析,如圖:
System名稱空間是.NET Framework應用程序的根名稱空間,包含控制檯應用程序需要的所有基本功能。其餘的4個名稱空間常常用於控制檯應用程序,所以程序包含了它們。