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