08/05/01 16:37:27
誰か、より良い方法があったら教えてください。
// 何箇所も変更場所があるのは好ましくない
class MyComponent1
{
string myProperty = "初期文字列";
[DefaultValue("初期文字列")]
public string MyProperty { get { return myProperty; } set { myProperty = value; } }
public MyComponent1() { }
}
// リファクタリングで MyProperty を書き換えると GetProperty("MyProperty") に変更が入らない
// 結局複数個所を書き換える方が見通しがいい
class MyComponent2
{
string myProperty;
[DefaultValue("初期文字列")] // ここを書き換えたら myProperty の初期値にも反映したい
public string MyProperty { get { return myProperty; } set { myProperty = value; } }
public MyComponent2()
{
var defaultValue = typeof(MyComponent2).GetProperty("MyProperty").GetCustomAttributes(typeof(DefaultValueAttribute), false)[0];
myProperty = defaultValue.ToString();
}
}