2012-03-13 52 views
0

我是編程的新手,現在我有一個關於變量和屬性的問題:「聲明公共變量和公共屬性有什麼區別?」。任何人都可以用一些例子解釋我嗎?我有一個關於變量和屬性的查詢

+0

是否有您所指的特定語言? – 2012-03-13 07:11:04

+0

http:// stackoverflow。com/questions/379041 /使用公共領域和無數其他方法的最佳做法,搜索「公共領域vs財產」或沿着這些方向的任何內容 – Henry 2012-03-13 07:11:38

+0

@Adam Reed我正在使用C# – 2012-03-13 07:35:20

回答

0

很多人對什麼是「正確」的方式有不同的看法,只是不同的編碼標準。就我個人而言,我認爲公共屬性會給你更多的控制權,因爲在get或set方法中可以有一些簡單的邏輯。如果你只是想要一些快速的全局變量,那麼公共財產很好。

在.net中有一些實例,如果您必須具有屬性而不是公共變量,例如通常當綁定到數據源等

更多信息檢查此鏈接:

codinghorror.com

0

要澄清一點的是什麼約翰說,屬性可以限制和邏輯添加到你在做什麼。

例如,如果我有一個矩形類

class Rectangle 
    { 
      private float mWidth; 
      private float mHeight; 
      private float mArea;    

      public float width 
      { 
       get 
       { 
         return mWidth; 
       } 
       set 
       { 
        mWidth = value; 
        mArea = mHeight*mWidth; 
       } 
      } 
      public float height 
      { 
       get 
       { 
         return mHeight; 
       } 
       set 
       { 
        mHeight = value; 
        mArea = mHeight*mWidth; 
       } 
      } 

      public float area() 
      { 
       return mArea; 
      } 
    } 

所以rect.width + = 20; 將更新寬度和麪積;

顯然,這是一個愚蠢的例子,但你可以這樣做沒有寬度和高度的屬性,使用公共變量來代替,而不是僅僅使用

 public float area 
    { 
      get 
      {  
       return width*height; 
      } 
    } 

如果你說這會給你正確的區域float x = rect.area,但不會讓你說出像rect.area = 40的東西。

還有很多更深入的東西,你可以用屬性來做,比如數據綁定,但是如果你只是開始編程,你會在稍後看到。

就目前而言,您可以將屬性視爲一種不需要()並且可以接受或給出變量的方便方法。

如果它沒有做任何事情,但獲取和設置,它可能更好作爲一個變量。

如果它做了很多的內部工作,並影響到你的班級的相當一部分,它應該可能是一種方法。

如果它是一個快速的功能 驗證輸入(浮動旋轉{集合{mRotation =值%360;}})! 或多個校驗輸出(布爾isInMotion {{返回(isTurning & & isMoving) }} propertys工作。

沒有什麼規則是最後一門課程的。

我希望這給你的屬性VS變量的一個基本的瞭解,雖然一如既往有很多東西要學。

好魯CK!