1. 程式人生 > 遊戲 >回合RPG《鋼鐵誓言》4月19日登陸Steam搶先體驗

回合RPG《鋼鐵誓言》4月19日登陸Steam搶先體驗

1.什麼是變數

  變數其實就是是表示在計算機的記憶體地址中我們用來儲存資料的一個儲存空間。即變數是儲存在計算機記憶體中的臨時值。

2.變數的定義

 若要為變數賦值,請使用“賦值運算子”,這是一個等號字元 即“=”符號。

 請注意,應從右到左進行賦值。 換句話說,C# 編譯器必須首先理解賦值運算子右側的值,然後才能對賦值運算子左側的變數執行賦值。 如果顛倒順序,則會混淆 C# 編譯器。

  • 必須先將值分配給變數(設定),然後才能從變數中檢索(獲取)值。
  • 可通過在宣告是給變數賦值來初始化變數。
  • 從右到左進行賦值。
  • 使用單等號字元作為賦值運算子
  • 若要從變數中檢索值,只需要使用變數的名稱。
  • 變數必須初始化
//宣告變數:就是根據資料型別在記憶體申請空間
string name;

//變數賦值:就是將資料儲存到對應的記憶體空間
name = "小王";

//也可以同時宣告並賦值
int age = 24;

//在一條語句中同時宣告多個變數,並且這些變數的資料型別必須一致
string gender, address;

//在一條語句中同時宣告多個變數並賦值,並且這些變數的資料型別必須一致
int x =20, y=20;

注意:在使用變數之前必須先初始化變數

3.變數的命名

  •  變數名只能用英文字母、數字和下劃線。不能使用特殊字元,如“$”等符號。
  • 變數名必須以字母或下劃線開頭,不能以數字開頭。以下劃線開頭一般用於特殊目的的,不建議使用。
  • 變數名不能是c#關鍵字。如:不能使用以下變數宣告:string、int、this等。
  • 變數名嚴格區分大小寫:如:int age;和 int Age;是兩個不同的變數。
  • 變數名已經使用駝峰式命名法,即的一個單詞的首字母小寫,其他單詞大寫的形式。如:studentName、studentAge等格式。
  • 變數的名稱要有意義,儘量用對應的英文命名,如:名稱:name。
  • 變數名不應該包含變數是資料型別,你可能會看到使用類似string strName這種命名情況,但是這種方式已經不實用最新情況。

4.型別推段

  使用var 關鍵字,該關鍵字指示 C# 編譯器去推斷型別。 推斷出型別後,它與實際資料型別一樣,也可用於宣告變數。

  • 宣告變數時必須初始化才能使用。
  • var關鍵字指示編譯器根據變數的初始化值來推斷變數的資料型別。
  • 閱讀其他的程式碼是,你可能會看到var關鍵字。但是,你應儘可能使用資料型別。
  • 聲明瞭變數,推斷出了型別後,就不能改變變數型別。變數的型別確定後,就遵循其他變數型別遵循的強型別化規則。
//錯誤的宣告格式
var name;
name = "小明";

//正確的格式是宣告並賦值
var message = "Hello world!";

//更改已經已經推斷出型別"message"的型別為string,
//現在我們把"message"重新賦值其他型別的值讓它推斷
//由於變數 message 會被立即設定為字串值 "Hello World!",因此 C# 編譯器瞭解其意向並將每個訊息例項視為 string 型別例項。
//事實上,message 變數的型別為字串,並且永遠無法更改。 此處我們嘗試將 message 設定為文字十進位制值 10.0m
message = 10.0;

5.變數的作用域

   變數的作用域是可以訪問該變數的程式碼區域。一般情況下,確定作用域遵循以下規則:

  • 只要類在某個作用域內,其欄位(也稱為成員變數即屬性)也在該作用域內。
  • 區域性變數存在於宣告該變數的塊語句或方法結束的右花括號之前的作用域內
  • 在for、while或類似已經中宣告的區域性變數存在於迴圈體內。   

     1)區域性變數的作用域衝突

         在實際情況中我們可能會遇到變數相同,但是其作用域不同的情況。這樣的情況程式是不會有問題的,但是要注意,同名的區域性變數不能在同一個作用域內宣告兩次。

#region 相同作用域多次宣告多次同一個變數
//變數"name"在同一作用域中宣告兩次
string name = "小明";
string name = "小米";

int j = 20;
for (int i = 0; i < 10; i++)
{
    int j = i;//j在迴圈之前已經定義
    Console.WriteLine(j);
}
#endregion

#region 不同作用域宣告多次同一個變數
for (int i = 0; i < 10; i++)
{
    Console.WriteLine(i);
}
for (int i = 0; i < 9; i++)
{
    Console.WriteLine(i);
}
#endregion

     2)欄位和區域性變數的作用衝突

        在實際情況,可以缺乏名稱相同、作用域相同兩個變數。此時編譯器是允許宣告第2個相同的變數。原因是在變數之間有一個基本的區分,它吧在型別級別宣告的變數看做欄位,而在方法中宣告的變數看作區域性變數。

//程式會把這個變數看作區域性變數
string name = "小明";
static void GetName()
{
    //把這個變數看作"GetName"這個方法下的變數
    string name = "小米";
    //這裡"name"變數的值顯示的當前方法中"name"的值
    Console.WriteLine(name);
}

 

6.常量

   常量就是其值在使用過程中不會發生變化的變數。在宣告和初始化變數時,在變數前面加上關鍵字const,就可以把變數指定為一個常量。

   常量是固定值,程式執行期間不會改變。常量可以是任何基本資料型別,比如整數常量、浮點常量、字元常量或者字串常量,還有列舉常量。

   常量可以被當作常規的變數,只是它們的值在定義後不能被修改 

   常量的定義語法:

    const 資料型別  常量名稱=值;

//常量定義
const int a = 100;

   常量具有以下特點:

  • 常量必須在宣告是初始化。指定了其值後,就不能在改寫了。
  • 常量的值必須能在編譯時用於計算程式
  • 常量總是靜態的。但是注意,不必在常量宣告中包含修飾符static。

    使用常量的好處:

  • 由於使用易於的名稱代替比較難讀讀取的數字或字串,常量使程式更易於閱讀。
  • 常量使程式更易於修改。
  • 常量更容易避免程式出現錯誤,如果在宣告常量的位置以外的地方給常量賦值,編譯器會報告錯誤。

搜尋

複製