У меня есть функция.Как проверить тип объекта T?
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);
}
Можете ли вы привести пример того, почему вам нужно знать, какой тип передается? –
Непонятно, что вы подразумеваете под этим: «Я хочу проверить T objectData - это MyObject1 или MyObject2 внутри MainFunction» - Что вы пытаетесь определить? – David
Имейте базовый класс для 'MyObject1' и' MyObject2' и используйте [generic constraint] (http://msdn.microsoft.com/en-us/library/d5x73970.aspx), например 'where T: BaseClass', но вы можете пересмотреть свой дизайн, если вы проверяете тип в универсальном методе, тогда вам, вероятно, не нужны дженерики. – Habib