c#4.5新文法--自動屬性和隱式類型

來源:互聯網
上載者:User

標籤:

1、自動屬性
    自動屬性是c#中屬性定義的兩種形式的一種:傳統屬性定義、自動屬性。
    1.1 傳統屬性定義
        private int _age;
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }
 1.2 自動屬性
         public int Age{get;set;}//該句代碼的作用和上面傳統屬性定義的語句的作用是一樣的
1.3 兩種屬性定義形式的優缺點對比
 1.3.1 傳統屬性定義形式
    缺點:定義屬性的代碼多 文法不簡潔 繁瑣
    優點:定義屬性的時候,可以帶一些邏輯判斷,這是自動屬性所不能做到的。
          例如:
       private int _age;
        public int Age
        {
            get { return _age; }
            set {
                if((0<value)&&(value<200))
                {
                _age = value;
                }
            }
        }
    1.3.2 自動屬性定義形式
       優點:定義文法簡介,高效、減少程式員書寫的代碼量
       缺點:定義屬性的時候,不能做一些邏輯判斷。
2、屬性的作用
  1、定義屬性可以保護類的私人欄位(封裝性)
  2、簡化了對類的調用(定義屬性之後,要調用累得欄位_age,不需要再執行個體化類了)

3、隱式類型 var
3.1概述
  定義變數的方式有兩種:傳統定義方式、定義成隱式類型。
  傳統定義方式:資料類型+變數名(定義的時候可以初始化,也可以不初始化) int k=0;int k;
  隱式類型定義方式:var+變數名(定義的時候必須初始化)var k=0;、
3.2 注意
(1).聲明的同時必須初始化,因為編譯時間要根據初始化實值型別來推斷var的類型;
(2).聲明後不能再修改資料類型,因為初始化的時候已經確定了var的類型了;
(3).只能作為方法局部變數使用。類的成員欄位、方法的形參和傳回值都不能使用!因為無法在編譯時間確定他們的類型!
(4).初始設定式不能是匿名函數和null。
(5)、隱式類型不是動態類型,編譯的時候,.net架構把var k=0;轉換成了int k=0;

c#4.5新文法--自動屬性和隱式類型

相關文章

聯繫我們

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