вот что я делаю:
object ReturnMatch(System.Type type)
{
foreach(object obj in myObjects)
{
if (obj == type)
{
return obj;
}
}
}
Однако, если obj является подклассом type
, он не будет совпадать. Но я бы хотел, чтобы функция возвращалась так же, как если бы я использовал оператор is
.
Я попробовал следующее, но оно не скомпилируется:
if (obj is type) // won't compile in C# 2.0
Лучшее решение, которое я придумал, было:
if (obj.GetType().Equals(type) || obj.GetType().IsSubclassOf(type))
Нет ли способа использовать оператор is
, чтобы сделать код чище?