更快地按名称或类型进行比较?

2 c# c++-cli

执行对象比较时,按名称(字符串)或类型(指针)进行比较是否更快?

见下文:

if(sender is DataGridView) { .. }
Run Code Online (Sandbox Code Playgroud)

要么

if(sender.GetType().ToString() == "System.Forms.DataGridView") { .. }
Run Code Online (Sandbox Code Playgroud)

注:我可能没有语法完全正确的...这是一个C#示例,但在这里评论的答案在一个我的问题让我想一想.

Dav*_*d M 12

这两者并不相同.只有当发件人的类型完全匹配时才会匹配第二个DataGridView.如果类型是或继承自,则第一个将匹配DataGridView.所以第一点,比较是不一样的.正如Benjamin Podszun在他的回答中所说,对于确切类型相等的正确比较是:

instance.GetType() == typeof(Class)
Run Code Online (Sandbox Code Playgroud)

除此之外,我的直觉是类型比较会更快,如果类型是确切的DataGridView,但在它是一个后代类型的情况下它将不那么明确.