1. 程式人生 > >.Net瑣碎知識點

.Net瑣碎知識點

規範:
* 註釋

* 駱駝命名 :第一個單詞首字母小寫,之後的單詞首字母大寫 userName、userPassword、realName…(普通變數、欄位)
* 帕斯卡命名:第一個單詞首字母大寫,之後的單詞首字母大寫 GetMax()、ChangeName()…(方法名、類名
* 定義的變數或者方法 名字要有意義。
* 方法名:動詞。Write()、Open()、Close()、Dispose()、GetUserId()、…(方法都是要做一件事情)
* 變數名:按功能命名、按方法的返回值內容命名(userName=GetUserName();)

文件註釋:
連續按下3個 / ,就會自動生成。
文件註釋作用:
1.使用程式碼時會有提示
2.可根據文件註釋生成軟體的“說明書”。
1.將文件註釋生成xml檔案的方法:“專案”→“屬性”→“生成”→“輸出”→“Xml文件檔案”(CheckBox勾選)
2.若要基於編譯器生成的檔案建立最終文件,可以建立一個自定義工具,也可以使用 Sandcastle 等工具。

轉義符:
 * string:"\"ab\""、"ab\nb"、"c:\\a.txt"、@"c:\a.txt"(推薦)。@表示字串中的\不當
    成轉義符
* @不是萬能的,不能解決字串中有雙引號的問題,如果有雙引號還是用轉義符 
  ‘a’是char,"a"是string 
  問題:
     •  String str=Console.ReadLine();
     •  Console.WriteLine(str);
     •  使用者輸入a\nb,輸出什麼?轉義符只針對在程式碼中直接寫出的字串,對於程式中讀取出來沒有這個問題。

 var隱式型別(型別推斷)
var 強型別.根據後面的值自動推斷型別,編譯時把推斷的型別替換掉var
只是方便程式設計師使用而已。
不能作為類成員的型別、不能用作方法的引數,返回值。(只能用作區域性變數的型別推斷)
var宣告的僅限於區域性變數,不可用於欄位。亦可以用於for,foreach,using 等語句中。

擴充套件方法:
宣告擴充套件方法的步驟:類必須是static,方法是static,第一個引數是被擴充套件的物件,前面標註this(this 資料型別 引數名)。使用擴充套件方法的時候必須保證擴充套件方法類已經在當前程式碼中using
public static class PersonExt
    {
        public static void SayHello(this Person p)
        {
            Console.WriteLine("Hello");
        }
    }

Attribute(特性、標記):
就是一個標籤,在使用當前類的地方,通過反射獲取該特性。
一般為了與Property(屬性)區分,所以把attribute翻譯成“特性”。
特性沒有什麼實際意義,就是打了一個標籤(可能該類中還會儲存一些資料)。
Attribute用來對類、屬性、方法等標註額外的資訊,貼一個標籤。
Attribute的格式:[Attribute類名(建構函式引數)],如果沒有引數可以簡寫為[Attribute類名]
常用內建的Attribute:
[Obsolete("推薦用IncAge方法")]:過時成員。一個方法過時一般是不推薦再使用,不會再修改bug,甚至是在今以後版本中刪除。
[Bindable]:把屬性標記為Bindable,這個屬性就可以進行資料繫結
[DisplayName],開發一個電話號碼UserControl,將TelphoneNum欄位的DisplayName設為“電話號碼”。
Attribute就是類,Attribute類名一般都以Attribute結尾,使用的時候不用加Attribute這個結尾。使用Attribute的時候給的引數其實就是建構函式
反編譯DisplaynameAttribute,發現沒有特殊程式碼。標籤本身是沒有含義,只是起到標註的作用,具體怎麼解釋、使用這個標識,是由使用者來決定:屬性檢視視窗、C#編譯器。相當於在放上畫一個“拆”,本身這個字沒有含義。


待補充.....................................