c#基礎

來源:互聯網
上載者:User

標籤:style   color   io   使用   ar   strong   for   sp   cti   

    1. ref與out之間的區別:

      ref 傳的參數必須要先初始化,out不必
      ref傳進去的參數在函數內部可以直接使用,而out不可
      out必須在離開函數前賦值
    2. 裝箱:
      對實值型別在堆中分配一個對象執行個體,並將該值複製到新的對象中。按三步進行。
      第一步:新分配託管堆記憶體(大小為實值型別執行個體大小加上一個方法表指標和一個SyncBlockIndex),SyncBlockIndex作用
      是指示線程同步狀態
      第二步:將實值型別的執行個體欄位拷貝到新分配的記憶體中。
      第三步:返回託管堆中新指派至的地址。這個地址就是一個指向對象的引用了。
      拆箱:
      檢查對象執行個體,確保它是給定實值型別的一個裝箱值。將該值從執行個體複製到實值型別變數中。
    3. 擴充方法:被定義為靜態方法,它們的第一個參數指定該方法作用於哪個類型,並且該參數以this修飾符為首碼
    4. 靜態類以static聲明,指示它只包含靜態成員,不包含建構函式,不能被繼承可以有靜態建構函式,不能有參數,只運行一次,用於初始化靜態成員,但我們沒法直接調用,而是調用時由CLR自動調用
    5. readonly:運行時常量,且只能定義類成員變數,可以根據上下文邏輯進行賦值,只能賦值常量
      const:編譯時間常量,編譯時間已確定
    6. c#結構體是實值型別,特性如下:
      所有結構都從Object類派生,不能從其他類或者結構派生,也不能作為其他類或結構的基類。
      結構中的欄位預設是私人的,並且結構的欄位不能在聲明時顯示初始化。
      結構可以有一個或多個構造方法,但是不允許自己定義預設建構函式,而且編譯器要求自訂建構函式都要初始化結構的所有欄位。
      結構的預設建構函式將所有實值型別的欄位設為0,所有參考型別的欄位設為空白引用
    7. try中有return語句,finally中的語句也會執行,在return後運行
    8. c# 聲明了abstract方法的類必須是abstract 方法,abstract方法必須沒有實現且必須被繼承類實現
    9. virtual 關鍵字用於修飾方法、屬性、索引器或事件聲明,並使它們可以在衍生類別中被重寫,virtual方法必須有實現,virtual 修飾符不能與 static、abstract, private 或 override 修飾符一起使用
    10. Action:無傳回值類型的泛型委派
      Func:有傳回值類型的泛型委派,最後一個參數是傳回型別
      Predicate:返回bool型的泛型委派
    11. params指定可變參數,方法聲明中只允許一個params關鍵字,之後不能再有參數
    12. 泛型中的靜態成員在相同封閉類間共用,在不同封閉類間不共用,例如下面a和b是相同封閉類型,與c不是
      stack<int> a = new stack<int>();   stack<int>b= new stack<int>();   stack<long> c= new stack<long>();
      當一般方法與泛型方法具有相同簽名時會覆蓋泛型方法,泛型參數可以有約束

約束

說明

T:結構

型別參數必須是實值型別。 可以指定除 Nullable 以外的任何實值型別。

T:類

型別參數必須是參考型別;這一點也適用於任何類、介面、委託或數群組類型。

T:new()

型別參數必須具有無參數的公用建構函式。 當與其他約束一起使用時,new() 約束必須最後指定。

T:<基類名>

型別參數必須是指定的基類或派生自指定的基類。

T:<介面名稱>

型別參數必須是指定的介面或實現指定的介面。 可以指定多個介面約束。 約束介面也可以是泛型的。

T:U

為 T 提供的型別參數必須是為 U 提供的參數或派生自為 U 提供的參數。

 

  1. 應用程式定義域:在一個進程中可以包含多個應用程式定義域,一個應用程式定義域可以裝載一個可執行程式(*. e xe )或者
    多個程式集(*. d l l )。這樣可以使應用程式定義域之間實現深度隔離,即使進程中的某個應用程式定義域出現錯誤,也不會影響
    其他應用程式定義域的正常運作。
  2. 類繼承了INotif yPropertyChanged,類中的屬性如果跟控制項綁定了, 那麼PropertyChanged事件 屬性就會被自動
    賦值,屬性變了後可以出發PropertyChanged事件

c#基礎

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.