Czy to jest:
public MyClass
{
public const string SomeString = "SomeValue";
}
gorzej niż to:
public MyClass
{
public static string SomeString { get{ return "SomeValue";}}
}
Do obu można odwoływać się w ten sam sposób:
if (someString == MyClass.SomeString)
...
Drugi jednak ma ochronę bycia własnością. Ale tak naprawdę, o ile lepsze to jest od stałego?
Nauczyłem się w kółko niebezpieczeństw posiadania pól publicznych. Więc kiedy zobaczyłem trochę kodu używającego tych stałych w polach publicznych, natychmiast zabrałem się do refaktoryzacji ich do właściwości. Ale w połowie zastanawiałem się, jaką korzyścią byłoby mieć statyczne właściwości nad stałymi.
Jakieś pomysły?