C# 屬性和字段的區別


屬性和字段的區別

    在C#中,我們可以非常自由的、毫無限制的訪問公有字段,

但在一些場合中,我們可能希望限制只能給字段賦於某個范圍的值、或是要求字段只能讀或只能寫,

或是在改變字段時能改變對象的其他一些狀態,這些單靠字段是無法做到的,於是就有了屬性,

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

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

當缺少其中一塊時屬性就只能讀或只能寫,set和get塊中屬性必需有一個,因為即不能讀又不能寫的屬性是沒有意義的。

class MyClass

{

       Private  string  name;

   public string Name

   {

      get {return Name;}

      set {Name=value;}

   }

}

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

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

  如: 

   private int a=0;
  public int A
  {
       get{return this.a;}
       set
       {
           if(value >= 0 && value <= 100)
                this.a=value;   
            else
                throw new Exception("值的范圍不合法。");
       }
  }
(3) 屬性沒有存儲數據的功能,數據都存在字段中,所以只有修改字段的數據才能更改數據,修改屬性的值沒用。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM