2
我想在C++/CLI帮助器类中使用泛型枚举类型,如果强制转换不起作用,我希望它默认为0。我的问题是,result = (T)0;
不起作用。有没有解决的办法?强制int转换为枚举
错误1个错误C2440: '类型转换':
result = (T)Enum::ToObject(T::typeid, 0);
或略微“丑陋:无法从 'INT' 到 'T'
generic <typename T> where T: value class, Enum
static void SetEnumPropertyValue(String^ value, [Out] T %result)
{
if (String::IsNullOrEmpty(value))
false;
if (!Enum::TryParse<T>(value, true, result))
{
result = (T)0;
}
}
Enum.TryParse应该是Enum :: TryParse btw。 – DeCaf
@DeCaf对。发布后我发现了这一点。谢谢。 – mydogisbox
你总是可以编辑你的文章来纠正这样的事情。可能会让那些想要复制代码并编译它以查看其错误的人更容易。 (仅供将来参考) – DeCaf