Should a property have the same name as its type?

后端 未结 9 902
醉梦人生
醉梦人生 2020-12-01 06:06

I\'ve sometimes seen code written like this :

public class B1
{
}

public class B2
{
    private B1 b1;

    public B1 B1
    {
        get { return b1; }
           


        
相关标签:
9条回答
  • 2020-12-01 06:43

    Another gotcha is with inner types.

    I run into this one all the time:

    public class Car {
        public enum Make {
            Chevy,
            Ford
        };
    
        // No good, need to pull Make out of the class or create
        // a name that isn't exactly what you want
        public Make Make {
            get; set;
        }
    }
    
    0 讨论(0)
  • 2020-12-01 06:46

    The Microsoft Naming Guideline for Members state:

    Consider giving a property the same name as its type.

    When you have a property that is strongly typed to an enumeration, the name of the property can be the same as the name of the enumeration. For example, if you have an enumeration named CacheLevel, a property that returns one of its values can also be named CacheLevel.

    Though I admit there is a little ambiguity whether they are just recommending this for Enums or for properties in general.

    0 讨论(0)
  • 2020-12-01 06:49

    It's fine. The canonical example here is

    public Background {
        public Color Color { get; set; }
    }
    

    There are rare issues (corner cases) that come up here, but not enough to warrant avoiding this device. Frankly, I find this device quite useful. I would not enjoy not being able to do the following:

    class Ticker { ... }
    
    
    public StockQuote {
        public Ticker Ticker { get; set; }
    }
    

    I don't want to have to say Ticker StockTicker or Ticker ThisTicker etc.

    0 讨论(0)
提交回复
热议问题