执行对象比较时,按名称(字符串)或类型(指针)进行比较是否更快?
见下文:
if(sender is DataGridView) { .. }
Run Code Online (Sandbox Code Playgroud)
要么
if(sender.GetType().ToString() == "System.Forms.DataGridView") { .. }
Run Code Online (Sandbox Code Playgroud)
Dav*_*d M 12
这两者并不相同.只有当发件人的类型完全匹配时才会匹配第二个DataGridView.如果类型是或继承自,则第一个将匹配DataGridView.所以第一点,比较是不一样的.正如Benjamin Podszun在他的回答中所说,对于确切类型相等的正确比较是:
instance.GetType() == typeof(Class)
Run Code Online (Sandbox Code Playgroud)
除此之外,我的直觉是类型比较会更快,如果类型是确切的DataGridView,但在它是一个后代类型的情况下它将不那么明确.