C#進階編程(二)-核心C#的詳解

來源:互聯網
上載者:User

變數的初始化和範圍

  初始化

    C#有兩個方法可以一確保變數在使用前進行了初始化:

    • 變數是欄位,如果沒有顯式初始化,建立這些變數時,其預設值為0。

    • 方法的局部變數必須在代碼中顯式初始化,之後才能在語句中使用,如果在初始化之前使用了他的值,報錯。

  範圍

    如果局部變數範圍衝突,報CS0136錯。

    欄位與局部變數衝突,隱藏掉欄位,訪問被隱藏的執行個體欄位用this關鍵字,靜態欄位使用object.fieldname。

  常量

    常量的特點:

    • 常量必須在聲明時初始化,指定其值後將不允許變更。

    • 常量的值必須在編譯時間用於計算,不能從變數中提取值。

    • 常量總是靜態,不允許使用static關鍵字進行修飾。

  常量的優點:

    • 易於閱讀

    • 易於修改

    • 易於避免出錯

預定義資料類型

  實值型別與參考型別

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

  參考型別

    要建立對象必須使用new關鍵字,將一個參考型別賦值給另一個參考型別得到的只是它的地址,會隨著它的更改而更改。如:

         Test x,y;      x testX = new Test();      y testY = x;      testX.value =1;    //這條語句執行後testX與testY的value屬性的值都會為

  CTS類型

  C#認可的基本預定義類型並沒有內建在C#中,而是內建於.NET Framework中。

  decimal不是.NET Formework中內建類型,會造成效能損失。

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

  所有內建類型都繼承Object類型。

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

流量控制

  條件陳述式

    if ,else if,else。

  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. 名稱和關鍵字

屬性和方法的使用

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

    • 用戶端醫改能讀取它的值,最好不要使用唯寫屬性。

    • 讀取該值不應該花他長時間。

    • 不應有負面效應。

    • 可以按任意順序設定屬性。

    • 順序讀取屬性也應該有相同的效果。


欄位的用法

欄位總應該是私人的。

2016-05-07 22:29:18

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.