进行对象比较时,按名称(字符串)比较还是按类型(指针)比较更快?
见下文:
if(sender is DataGridView) { .. }
或
if(sender.GetType().ToString() == "System.Forms.DataGridView") { .. }
注意:我的语法可能不完全正确...这是一个 C# 示例,但是 comment answer here在一个my questions让我想到了。
最佳答案
两者并不等同。仅当发件人的类型恰好是 DataGridView
时才会匹配第二个。如果类型是 DataGridView
或继承自 DataGridView
,则第一个将被匹配。所以第一点,比较是不一样的。正如 Benjamin Podszun 在他的回答中所说,精确类型相等的正确比较是:
instance.GetType() == typeof(Class)
除此之外,我的直觉是,如果类型恰好是 ojit_code ,类型比较会更快,但如果它是后代类型,则比较不明确。
关于c# - 按名称或类型比较更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1995039/