c#進階編程第六版讀書筆記

來源:互聯網
上載者:User

1.對象方法參數傳遞

  參數可以通過引用或值傳遞給方法,在變數通過引用傳遞給方法時,被調用的方法將得的就是這個變數,所以在方法內部對變數進行的任何改變在方法退出後仍舊發揮作用.而如果變數是通過值傳遞給方法的,被調用的方法得到的是變數的一個副 本,也就是說大方法退出後,.對一次量進行的修改會丟失.注意字串是不同的.因為字串是值不能改變的.在方法調用中,對字串所做的任何改變都不會影響原來的字串.

  public void action(int i,intp[] list)

  {...}

  在方法內部對i進行的修改不會影響到外部變數,對list所做的更改會影響到外部變數

  通過值傳送變數是預設的.也可以迫使參數通過引用傳遞給該方法,為此.要使用ref關鍵詞

2.建構函式

   系統預設的建構函式只能把成員欄位初始化為標準的預設值(如果欄位在類內部已初始化,則不重新初始化),如:參考型別為空白引用(=null),數實值型別為0,bool型為false.

3.唯讀欄位

  常量的概念就是包含一個不能修改的值的變數,但是,常量不必滿足所有的要求,有時可能需要一些變數,其值不能改變,但在運行之前其值是未知的.c#可用唯讀欄位(readonly)解決.

4.繼承與重寫

  把一個基類函式宣告為virtual,同樣適用於屬性,該函數就可以在衍生類別中重寫了.

  class MybaseClass

  {

       public virtual string VirtualMethod()

       {

                 return "this method is virtual and defined in mybaseclass"

        }

  }

繼承

   class myDrivedClass:MybaseClass

   {

     public override string VirtualMethod()

     {

         return "..."

     }

   }

   如果簽名方法在基類或衍生類別中都進行了聲明.但該方法沒有聲明virtual和override,衍生類別就會隱藏基類方法(書96頁),可用new關鍵詞隱藏基類方法.如:

class MybaseClass

  {

       public  string VirtualMethod()

       {

                 return "this method is virtual and defined in mybaseclass"

        }

  }

  繼承

class myDrivedClass:MybaseClass

   {

     public new string VirtualMethod()

     {

         //在繼承方法中可用base關鍵字調用基類方法.如:

         // return base.virtualmethod()+"ok";

         return "..."

     }

   }

5.衍生類別建構函式(第100頁)

  不論類繼承多少次,建構函式的調用順序是先調用system.obejct.再按照階層自上向下進行.直到到達編譯器要執行個體化的類為止,還要注意在這個過程中,每個建構函式都初化始它自己類中的欄位,這是它的一般工作方式.也就是說基類的建構函式總是最先調用,衍生類別的建構函式可以在執行過程中調用它可以訪問的基類方法.
   在編譯器試圖為衍生類別建立建構函式時,預設兩個類的建構函式必須具有相同的簽名.

如果簽名不同,則需用base關鍵字指定執行的建構函式

6.介面

   介面不能有建構函式或欄位,介面定義也不允許包含運算子多載,在介面定義中還不允許有聲明成員上的修飾符,介面成員總是公用的,不能聲明為虛方法或靜態方法

相關文章

聯繫我們

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