【发布时间】:2014-07-15 07:37:32
【问题描述】:
在我的代码中,我有一个通用的“getProperty”,如下所示:
public T getProperty<T>(int GUID, string property)
{
PropertyComponent prop;
prop = propDict[GUID];
if(property.Equals("visible")) return (T) (Boolean) prop.visible;
if(property.Equals("enabled")) return prop.enabled;
if(property.Equals("position")) return (T) (Object) prop.position;
}
Visual Studio 的编译器在第三学期没有给我任何错误,因为 prop.position 是 Vector2。然而,Prop.visible 和 prop.enabled 是 bool ,所以当我尝试以这种方式返回它们时,我会收到“无法将 bool 类型转换为 T”的错误(以及“无法将 bool 类型隐式转换为 T”的错误第二个)。
在这种情况下返回布尔值的正确方法是什么?
【问题讨论】:
-
(T)(object)是所有 3 个术语的正确转换。 -
@Marc 所以答案是,“你不能使用原语”?