我有一个功能。
protected Boolean MainFunction<T>(T objectData, string Id, out string Value)
{
//here I need to check whether T equal the object I need or not
}
以上MainFunction
由Function1
和Function2
调用,我传递MyObject1
和MyObject2
。
我想在T objectData
内检查MyObject1
或MyObject2
是MainFunction
还是public bool Function1(string ID, out string Value, out ErrorReport error)
{
return MainFunction(Data.MyObject1, ID, out Value, out error);
}
public bool Function2(string ID, out string Value, out ErrorReport error)
{
return MainFunction(Data.MyObject2, ID, out Value, out error);
}
。请给我任何建议。
{{1}}
答案 0 :(得分:0)
首先,请确保您不要将泛型用于非常规的事情,因为它看起来不错或重复删除代码。如果是这种情况,请继续。
其次,您可以使用is
检查类型是否与您需要的类型匹配:
if (objectData is MyObject1)
{
...
}
else if (objectData is MyObject2)
{
...
}
如果您可以控制类型,您还可以使用基类并使用通用约束来缩小T
类型的范围:
Boolean MainFunction<T>(T objectData, string Id, out string Value) where T : BaseClass
{
}