C# —- 重溫的一些點滴

來源:互聯網
上載者:User

08-08-27
   關鍵字params。通過它往方法傳遞參數可以個數不定,且事先不需要用數組打包。但限制和不便也極多,最關鍵的是添加params的參數要是最後一個。我的感覺是記得有這麼個東西,實在該用的時候就去用。當然對這個params運用的神來之筆應該是Console.Write()一族的方法啦。
   非抽象類別不可以聲明抽象方法。介面中的成員都是預設public和abstract的,但是在書寫方法簽名時不可以顯示寫出,會報錯。(這兩點主要分別針對c++和java中不一樣的地方,c++中只要有抽象方法就是抽象類別,而java中雖然預設是public和abstract但是你寫上也無妨)

 

08-08-29
    實值型別可以和null進行==比較,不過全部是false。
    c#本身不具有單獨的運行時類庫,所以我曾說過,c#不能獨存,.NET架構才是c#的運行時類庫。
    c#命令列中,編譯一個類庫的命令是csc /t:library 檔案名稱(/t是目標類型:exe,winexe,library,moudle)
    編譯一個using類庫的exe命令,csc /r: **.DLL 檔案名(/r是引用一個程式集)
    程式集就是一個exe或者dll,包含中繼語言(Intermediate Language)和中繼資料(metadata)。在執行程式集之前,CLR的JIT會將程式集中的IL代碼轉換成本地代碼。
    實值型別的變數直接包含它們的資料,而參考型別的變數儲存著對其資料的引用。

我們手裡控制的類型你瞭解多少呢?
    實值型別和參考型別:實值型別又分簡單類型,枚舉類型和結構類型;參考型別又分類類型,介面類型數群組類型和委託類型。
    結構不支援使用者指定的繼承。
    委託類型表示通過參數列表和傳回型別對方法的引用。委託將方法處理為實體,從而可以將其賦值給參數,並且作為參數傳遞。委託是物件導向和型別安全的。
裝箱與拆箱:
   c#中所有類型的基類都是object,為了操作實值型別像參考型別一樣,把實值型別和object之間進行轉換就是裝箱與拆箱了。而拆箱有一個要求就是必須那個object是裝箱而來,否則運行時出錯。

C# code runs in a safe,managed environment. Every memory loaction is checked, including array indexes.
The runtime generates a test of the actual array bounds before accessing each particular array element.

About foreach

  The foreach generates the best iteration code for any collection you hava.
  foreach now generates different IL for arrays than other collections. The array version does not use the IEnumerator interface,which would require boxing and unboxing.

About enum
   When you create your own values for an enum, make sure that 0 is one of them.
   The system initializes all instances of value types to 0. There is no way to prevent users from creating instances of value types that are all 0s.If possible, make the all 0 case the natural default. As a special case, enums used as flags ensure that 0 is the absence of all flags.

08-09-01
   checked 和unchecked 語句用於控制整型算術運算和轉換的溢出檢查上下文。
   lock語句用於擷取給定對象的互斥鎖,執行一條語句,然後釋放該鎖。
   using 語句用於擷取一個資源,執行一條語句,然後釋放該資源。
   數組有一個長度的屬性,Length。
   類是一種將狀態和行為結合在一個單元中的資料結構。
   類的成員不是靜態成員就是執行個體成員。靜態成員屬於類,執行個體成員屬於對象。
   對readonly域的賦值只能作為域聲明的一部分出現,或者在同一個類中的執行個體建構函式或靜態建構函式中進行。
   執行個體建構函式是實現對類執行個體進行初始化所需操作的成員;靜態建構函式則是在首次載入類時實現對類本身進行初始化所需操作的成員。
   對於小的資料結構,使用結構而不是類可以在應用程式運行時節省大量的記憶體配置。
   結構的建構函式通過new運算子來調用,但這並不意味著將分配記憶體。結構的建構函式不是動態地指派至並返回其值的引用,而是簡單地返回結構值本身(一般位於堆棧的臨時位置),然後在需要時對這個值進行複製。
08-09-02
   當應用程式運行時,將建立一個新的應用程式定義域(application domain)應用程式定義域通過作為應用程式狀態的容器,使得應用程式可以相互隔離。應用程式定義域充當了應用程式及其使用的類庫中所定義的類型的容器和邊界。

 

                                                                                                                 ----by 千冰念 @ YITIAN Studio

相關文章

聯繫我們

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