VB.NET中使用已知类型进行最快的转换?

Mag*_*nus 1 vb.net performance casting

当我在Form上有许多控件(即Label,Button等)做几乎相同的事情时,我经常使用一种方法来处理所有控件Click,MouseDown,MouseUp事件.

但要知道哪个控件抛出事件并访问该控件的属性,我需要将"sender"对象强制转换为正确的类型.

问题是我总是知道它是哪种类型,我不需要"TryCast","DirectCast"并检查操作是否返回true.我有时也使用CType.

Dim btn as Button = CType(sender, Button)

btn.Txt = "Pushed"

当我已经知道控件的类型时,我想找到最快的转换方法,我知道有一个Button事件调用我的方法,并且像将转发器对象转换为Button控件的最快方法.

有什么建议?

Jon*_*eet 9

我用DirectCast它最清楚地表达你的意图:你知道对象实际上是正确的类型; 您不需要执行任何转换,并且您不希望它们被执行:如果类型错误,则表示错误并且应该抛出异常,对吧?

你为什么这么担心表现呢?我怀疑DirectCast至少与替代方案一样快,但如果我们在谈论用户交互,那么与人类反应时间相比,演员阵容将是微不足道的.清晰的代码几乎总是比绝对最快的做事方式更重要.