これは:
public MyClass
{
public const string SomeString = "SomeValue";
}
これより悪い:
public MyClass
{
public static string SomeString { get{ return "SomeValue";}}
}
どちらも同じ方法で参照できます。
if (someString == MyClass.SomeString)
...
ただし、2番目はプロパティであるという保護があります。しかし、実際にはこれはconstよりもはるかに優れていますか?
私は、公共の場を持つことの危険を何度も学びました。したがって、パブリックフィールドでこれらの定数を使用するコードを見たとき、すぐにそれらをプロパティにリファクタリングし始めました。しかし、途中で、定数よりも静的なプロパティを使用することの利点について疑問に思いました。
何か案は?