问题描述
C#/.NET应用程序编程开发中,如何判断一个实例对象是一种指定的数据类型呢?
比如当前有Customer
类:
public class Customer
{
public int Id { get; set; }
}
我们为Customer
创建一个实例对象c
,如下:
var c = new Customer { Id = 1 };
要求判断c
是否为Customer
的实例,如何实现呢?
方案一
如果想要检查一个实例(这里的c
)是否是精确的类型(这里的Customer
),那么可以直接比较使用c.GetType()
获取到实例的类型,然后使用typeof()
获取到类的类型,如下:
if (c.GetType() == typeof(Customer))
如果想判断c
是Customer
的实例还是子类,那么使用is/as,如下:
if (c is Customer)
或者
Customer customer = c as Customer;
if (customer != null)
方案二
使用GetType()
方法获取到实例对应的类名,然后与指定的类名进行比较(这种比较只能判断精确的类型),如下:
if(c.GetType().Name.CompareTo("Customer") == 0)
温馨提示:本文标注有(完整示例)的示例代码可以直接粘贴在try.dot.net中运行。
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册