我想有一個方法,將從一個可空的數據庫列解析一個枚舉。 我在下面寫了這個方法(並且必須將T限制在一個結構中才能編譯)。通用可爲空枚舉
它確實編譯,但我相信它的錯誤作爲枚舉不是結構? 如果是這樣,我怎麼限制泛型方法的說,我期待一個值類型,你不必在我抱怨說:「只有非空值類型可以潛在的‘System.Nullable’
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;
}
枚舉只是與頂部糖整合,所以他們確實是結構。 – Jens 2012-07-30 10:06:51