Вот рабочий пример для возвращаемых значений Nullable Enum:
public static TEnum? ParseOptional<TEnum>(this string value) where TEnum : struct { return value == null ? (TEnum?)null : (TEnum) Enum.Parse(typeof(TEnum), value); }