一.基礎(chǔ)語法
1.C#區(qū)分大小寫,所以myVar和MyVar是兩個(gè)不同的變量。
2.每個(gè)C#可執(zhí)行文件(如控制臺(tái)應(yīng)用程序,Windows應(yīng)用程序和Windows服務(wù))都必須有一個(gè)入口點(diǎn)————Main()(M大寫)
public static void Main()
{
//do something
}
在程序啟動(dòng)時(shí)調(diào)用這個(gè)方法。該方法要么沒有返回值(void),要么返回一個(gè)整數(shù)(int)
二.變量
1.編譯器不允許在表達(dá)式中使用未初始化的變量。如果變量是類或結(jié)構(gòu)中的字段,如果沒有初始化,創(chuàng)建這些變量時(shí),其默認(rèn)值就是0。
2.類型推斷
類型推斷(type inference)使用var關(guān)鍵字。編譯器可以根據(jù)變量的初始化值“推斷”變量的類型。var somenum = 0;
即使somenum從來沒有聲明為int,編譯器也可以確定,只要somenum在其作用域內(nèi),就是一個(gè)int.
聲明了變量,推斷出了類型后,就不能改變變量類型了。變量的類型確定后,就遵循其它變量類型遵循的強(qiáng)類型化規(guī)則。
3.變量的作用域
變量的作用域是訪問該變量的代碼區(qū)域。只要變量的作用域是程序的不同部分就不會(huì)有問題。
(1).局部變量的作用域沖突
public static int Main()
{
int j =20;
for(int i=0;i<20;i++)
{
int j = 30;
// do something
}
}
編譯時(shí)會(huì)報(bào)錯(cuò),因?yàn)樵贛ain()方法作用域內(nèi)有兩個(gè)變量j,編譯器無法區(qū)分這兩個(gè)變量。
(2).字段和局部變量的作用域沖突
某些情況下可以區(qū)分名稱相同,作用域相同的兩個(gè)標(biāo)識(shí)符。原因是C#在變量之間有一個(gè)基本的區(qū)分,它把在類級(jí)別聲明的變量看作
字段,而把在方法中聲明的變量看作局部變量。
class Program
{
int j = 20;
static void Main(string[] args)
{
int j = 30;
Console.WriteLine(j);
Console.ReadKey();
}
}
雖然在Main()方法的作用域內(nèi)聲明了兩個(gè)j,這段代碼也會(huì)編譯。在類級(jí)別上定義的j,在該類刪除前是不會(huì)超出作用域的,在
Main()中聲明的j隱藏了同名的類級(jí)別變量,所以運(yùn)行代碼時(shí)會(huì)顯示30.
三.常量
顧名思義,常量是其值在使用過程中不會(huì)發(fā)生改變的變量。在聲明和初始化變量時(shí),在變量的前面加上關(guān)鍵字const,就可以把該變量指定
為一個(gè)常量:const int a =100;
常量的特點(diǎn);
*常量必須在聲明時(shí)初始化。指定了值之后就不能改寫了。
*常量的值必須能在編譯時(shí)用于計(jì)算。因此不能用于從一個(gè)變量中提取的值來初始化常量。如果需要,應(yīng)使用只讀字段(后面介紹)。
*常量總是靜態(tài)的。但注意,不必(實(shí)際上不允許)在常量聲明中包含static
使用常量的好處:
*由于使用易于讀取的名稱(名稱的值易于理解)代替了較難讀取的數(shù)字或字符串,常量使程序變得更易于閱讀。
*常量使程序易于修改。當(dāng)常量的值需要修改時(shí),只需要把新值賦給這個(gè)常量,不必查找整個(gè)程序去修改。
*常量更容易避免程序出現(xiàn)錯(cuò)誤。如果在聲明常量的位置以外的地方給常量賦值,編譯器會(huì)報(bào)錯(cuò)。
編寫中可能存在錯(cuò)誤,歡迎讀者指正批評(píng),郵箱15734108350@163.com.