Should a property have the same name as its type?
.net, c#, naming-conventions
Solution
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.
Problem
I've sometimes seen code written like this : ``` public class B1 { } public class B2 { private B1 b1; public B1 B1 { get { return b1; } set { b1 = value; } } } ``` i.e. class B2 has a property named "B1", which is also of type "B1". My gut instinct tells me this is not a good idea, but are there any technical reasons why you should avoid giving a property the same name as its class ? (I'm using .net 2.0, in case that matters).