構成ファイルからロードされた値を保持するために使用されるクラスがあります。このクラスを使いやすくするために、いくつかの基本型への多くの暗黙的な変換を設定しました。
変換したい型の 1 つは IEnumerable(T) です。たとえば、プログラマーが構成ファイルにこのような値を持っている場合
a = "1,2,3,4"
C# コードでは、次のように記述できます。
IEnumerable<int> a = Config.a;
理想的には私が書きたいのはこれです
public static implicit operator IEnumerable<T>(ConfigurationValue val)
{
string value = val;
string[] parts = value.Split(new[] { ',' }, StringSplitOptions.RemoveEmptyEntries);
List<T> convertedTypes = new List<T>();
foreach (string part in parts)
{
T converted = Convert.ChangeType(part.Trim(), typeof(T));
convertedTypes.Add(converted);
}
return convertedTypes;
}
しかし、これは T が定義されていないという構文エラーを私に与えています。そのような変換を定義する方法はありませんか、それとも特別な構文がありますか?
また、記録のために、.Net Framework 4.0 で C# 4.0 を使用しています。