null許容データベースの列から列挙型を解析するメソッドが欲しいのですが。私はこのメソッドを以下に書きました(そしてそれをコンパイルするためにTを構造体に制限しなければなりませんでした)。
コンパイルはしますが、列挙型は構造体ではないので間違っていると思いますか?もしそうなら、ジェネリックメソッドを制限して、ValueTypeを期待していると言うにはどうすればよいですか?
private static T? ParseEnum<T>(DataRow row, string columnName)
where T : struct
{
T? value = null;
try
{
if (row[columnName] != DBNull.Value)
{
value = (T)Enum.Parse(
typeof(T),
row[columnName].ToString(),
true);
}
}
catch (ArgumentException) { }
return value;
}