標籤:代碼 常量 相同 rgs 唯讀 推斷 stat 介紹 返回
一.基礎文法
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]
C#基礎文法(一)