📌
C#で文字列から指定した型の値に変換する
文字列を入力として受け取り指定した型の値に変換する処理。
System.ComponentModel.TypeDescriptor.GetConverter
で取得できるSystem.ComponentModel.TypeConverter
を使用することで簡単にできる。
// Type指定版
static object Convert(System.Type type, string stringValue)
{
var converter = System.ComponentModel.TypeDescriptor.GetConverter(type);
return converter.ConvertFrom(stringValue);
}
// Generics版
static T Convert<T>(string stringValue)
{
var converter = System.ComponentModel.TypeDescriptor.GetConverter(typeof(T));
return (T)converter.ConvertFrom(stringValue);
}
使用例
var a = Convert(typeof(int), "42");
var b = Convert<int>("42");
Discussion