c# - 按名称或类型比较更快?

标签 c# c++-cli

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

见下文:

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/

相关文章:

c# - 从 C++/CLI 调用 C# dll 函数

C# 串行端口在单次传输中未接收到所有字节

c# - 如何在引用之前确保类是有效的?

c# - EF Core 模型之间没有完整引用

c# - 用前缀字符填充以始终具有 12 个字符的字符串

delegates - 使用 C++/CLI 从点击事件调用委托(delegate)

multithreading - 使用 CLR boost 线程

c# - C++/CLI 中是否存在 C# 的不安全等效项?

c# - MVC : Updating One to Many Relationship

c++ - 当我收到此错误 : <mutex> is not supported when compiling with/clr 时如何实现非托管线程安全集合