C#高級編程筆記之第二章:核心C#

變量的初始化和做用域

  初始化

    C#有兩個方法能夠一確保變量在使用前進行了初始化:編程

    • 變量是字段,若是沒有顯式初始化,建立這些變量時,其默認值爲0
    • 方法的局部變量必須在代碼中顯式初始化,以後才能在語句中使用,若是在初始化以前使用了他的值,報錯。

  做用域

    若是局部變量做用域衝突,報CS0136錯。ide

    字段與局部變量衝突,隱藏掉字段,訪問被隱藏的實例字段用this關鍵字,靜態字段使用object.fieldname函數

  常量

    常量的特色:

    • 常量必須在聲明時初始化,指定其值後將不容許變動。
    • 常量的值必須在編譯時用於計算,不能從變量中提取值。
    • 常量老是靜態的,不容許使用static關鍵字進行修飾。

  常量的優勢:

    • 易於閱讀
    • 易於修改
    • 易於避免出錯

預約義數據類型

  值類型與引用類型性能

  概念與存儲方法的區別,參考第一章。測試

 

  引用類型

    要建立對象必須使用new關鍵字,將一個引用類型賦值給另外一個引用類型獲得的只是它的地址,會隨着它的更改而更改。如:ui

   

         Test x,y;

      x testX = new Test();

      y testY = x;

      testX.value =1;    //這條語句執行後testX與testY的value屬性的值都會爲

  CTS類型

  C#承認的基本預約義類型並無內置在C#中,而是內置於.NET Framework中。this

  decimal不是.NET Formework中內置類型,會形成性能損失。spa

  bool類型不能用0來表示false,非0表示truecode

  全部內置類型都繼承Object類型。orm

  string 的不可變性:如上述代碼中的testXtestY若是他們是string類型,當testX所指向的string改變時,會從新在託管堆中建立出一個新的string並指向它,testY所指向的值也就不會被更改。

流控制

  條件語句

    if else ifelse

  switch語句

case語句的值必需要是常量表達式,不容許使用變量。

C++的區別:激活了前一個case不會自動激活後一個case,且每個case必須用break不然報錯;能夠把字符串做爲測試變量。

可使用goto "標籤"經行跳轉。

case爲空則不須要break

循環

for while的區別:for適合可預測次數的循環,while適合不可預測次數的循環。

foreach

要實現foreach的遍歷,類中就必須實現IEnumerable接口。

foreach中不能改變每一項的值。

跳轉語句

goto

break

跳出當前循環

continue

跳過這次循環

return

退出當前方法

枚舉

一旦代碼編輯好,枚舉就成爲基本類型。

 

名稱空間(命名空間)

與文件或組件不一樣,名稱空間是一種邏輯組合,而不是物理組合。

通常名稱空間可接受的格式爲CompanyName.ProjectName.StstemSection

名稱空間別名的語法:

using slias = NamespaceName;

命名空間修飾符爲 ::

 

 1 //using System;
 2 using TestSystem = System;
 3 
 4 namespace 命名空間別名
 5 {
 6     class Program
 7     {
 8         static void Main(string[] args)
 9         {
10             TestSystem::Console.WriteLine("This is a C# Progam");
11             TestSystem.Console.ReadKey();
12         }
13     }
14 }
命名空間別名演示

預編譯

#if #elif 支持一組邏輯運算符「!」、「==」、「!+」、「||」。

 

C#編程規則

標識符規則

    • 能夠包含數字字符,可是它們他們必須以字母或下劃線開頭。
    • 不能使用C#關鍵字做標識符。

用戶約定

規則應該是一個正確的決策,而不是一種束縛。

    1. 命名約定

Pascal:名稱空間、類、函數名。

Camel:類中的字段(最好加「_」爲前綴能更直觀的知道這是個字段)、方法的參數。

    1. 名稱風格

名稱/命名的風格應當儘可能保持一致。

    1. 命名空間的名稱

命名空間是.NET區別共享程序集中對象名的惟一方法。

Microsoft建議使用以下名稱空間:<CompanyName>.<TechnologyName>

    1. 名稱和關鍵字

屬性和方法的使用

若是該對象的外觀像一個對象,就用屬性來表示它,即:

      • 客戶端醫改能讀取它的值,最好不要使用只寫屬性。
      • 讀取該值不該該花他長時間。
      • 不該有負面效應。
      • 能夠按任意順序設置屬性。
      • 順序讀取屬性也應該有相同的效果。

字段的用法

字段總應該是私有的。

 

 

 

本文部分摘錄自C#高級編程第九版,其他由Earl Jones整理及總結而成,本人能力有限,若有紕漏望及時指出。

若是你喜歡此書,或想了解更詳細內容,請購買正版書籍進行查閱。

轉載請註明出處。

 

2016-05-07 22:29:18

相關文章
相關標籤/搜索