测试c#对象的类型

本文关键字:类型 对象 测试 | 更新日期: 2023-09-27 18:05:47

我经常想知道在执行操作之前检查对象类型的更好方法是什么。

我可以使用'is'运算符:

if(obj is MyClass){
    var tObj = obj as MyClass;
}

或者我可以使用'as'操作符并测试null:

var tObj = obj as MyClass;
if(tObj != null){
}

一个比另一个好吗?有一种方法更快吗?这有关系吗?

测试c#对象的类型

第二种方法更好,因为它更快。

在第二种方法中,您只调用操作符as一次,并进行空检查,这比as/is操作符便宜得多。

这取决于你如何使用它,

例如,如果面板的可见性取决于对象的类型,那么is会更好,因为您可能不需要再次使用该对象。

但是对于您提供的示例,as会更好,因为您有一个工作对象要使用。