c# 屬性

來源:互聯網
上載者:User

標籤:blog   http   使用   io   ar   div   代碼   log   sp   

在C#中,我們可以非常自由的、毫無限制的訪問公有欄位,但有時我們可能希望:

(1)限制只能給欄位賦於某個範圍的值;

(2)或是要求欄位只能讀或只能寫;

(3)或是在改變欄位時能改變對象的其他一些狀態;

  這些只靠欄位是無法做到的,於是就有了屬性。

  屬性中包含兩個塊:set和get,set塊負責屬性的寫入工作,get塊負責屬性的讀取工作。

  在兩個塊中都可以做一些其他動作,如在set中驗證賦的值是否符合要求並決定是否進行賦值。

  set和get塊中屬性必需有一個,因為即不能讀又不能寫的屬性是沒有意義的。

  下面舉個簡單的例子:

(1)屬性可以保證安全,當不在本類中使用時,使用屬性名稱可以避免用欄位的名字。

1 class MyClass2 {3      private  string  name;4      public string Name5      {6          get {return name;}7          set {name=value;}8      }9 }

(2)屬性的set和get函數可以限制欄位的一些功能,以達到某種目的。

 1 private int a=0; 2 public int A 3 { 4      get{return this.a;} 5      set 6      { 7          if(value >= 0 && value <= 100) 8               this.a=value; 9          else10               throw new Exception("值的範圍不合法。");11      }12 }

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.