【发布时间】:2023-04-09 23:02:01
【问题描述】:
您好,我需要知道如何在 C# 中检查相同类型的对象。
场景:
class Base_Data{}
class Person : Base_Data { }
class Phone : Base_data { }
class AnotherClass
{
public void CheckObject(Base_Data data)
{
if (data.Equals(Person.GetType()))
{ //<-- Visual Studio 2010 gives me error, says that I am using 'Person' is a type and not a variable.
}
}
}
【问题讨论】:
-
恕我直言:请重新考虑这种设计。您的方法要么适用于
Base_Data类型,要么适用于子类Person和Phone。如果CheckObject发生了真正不同的事情,为什么不重载该方法并使用单独的CheckObject(Phone phone)和CheckObject(Person person)方法呢?这不是更多的代码,您会得到一些编译时间来检查您传递给CheckObject的Base_Data子类是否受CheckObject的支持。