C#のGenerics
C#ではC++でいうところのテンプレートの特殊化ができないらしい。
だから、テンプレートの型によって処理を変えるということもできない??
でも引数のインスタンスの型を調べれば処理は分けられるみたい。
public ConfigItem<T> createTextBox<T>(string label, T defalutValue) { TextBox text = new TextBox(); ConfigItemBase item; if (defaultValue is int) { ConfigItem<int> obj = new ConfigItem<int>(); obj.getEvent += new ConfigItem<int>.GetEventHandler(delegate { return int.Parse(text.Text); }); item = obj; } else if (defaultValue is string) { ConfigItem<string> obj = new ConfigItem<string>(); obj.getEvent += new ConfigItem<string>.GetEventHandler(delegate { return text.Text; }); item = obj; } else { throw new Exception("unsupported type!"); } return ConfigItem<T> item; }