C#高階程式(二)-核心C#的詳解

黄舟
發布: 2017-03-20 11:22:23
原創
1251 人瀏覽過

變數的初始化和作用域

  初始化

    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建議使用以下名稱空間:.


#名稱與關鍵字
    • #屬性和方法的使用

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

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

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

不應有負面效果。 ##################可以任意順序設定屬性。 ##################順序讀取屬性也應該有相同的效果。 #####################################欄位的用法########### #欄位總是應該是私有的。 ###############2016-05-07 22:29:18############

以上是C#高階程式(二)-核心C#的詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板