c# - 什么是最高效的,为什么?

标签 c# .net .net-3.5

我只是有一个小设计问题。

如果我得到这个代码

public Interface Test
{
  void Xyz();

}


public class1 : WebControl , Test
{
 public void XyZ()
 {
  // do someting
 }

 public OnLoad()
 {
   ((Test)this).Xyz();

// or   

   Test ctrl = this as Test;
   ctrl.Xyz();

// or

   Xyz();

 }

}

代码会有性能差异吗?我认为 Xyz() 直接调用会更快,但我不确定 ((Test)this).Xyz() 会与直接调用有所不同。

您对此有何看法,或引用文档。

谢谢

ps :我只是想有不同的性能,没有回答...为什么要转换或指定接口(interface)。我知道我可以直接调用我的方法

最佳答案

我希望编译器能够删除强制转换和“as”,因为它可以保证它们都成功……如果不成功,JIT 可能会这样做。请注意,如果您使用显式接口(interface)实现,您需要 cast 或 as 运算符。在那种情况下,我会使用强制转换:我个人只使用 as 如果值 not 是正确的类型是可行的(在 bug 以外的情况下) ).

最终,任何性能差异都将变得微不足道,但为了可读性,我会尽可能不进行转换。

关于c# - 什么是最高效的,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1368362/

相关文章:

c# - 向弹出消息框添加消息 C# 菜鸟问题

c# - 使用通用接口(interface)进行动态转换

c# - 限制跨 WCF 服务的请求数

c# - 如何解决私有(private)字节( native 内存)泄漏?

c# - 使用动态变量时可以指定泛型参数吗?

c# - LINQ:使用 INNER JOIN、Group 和 SUM

multithreading - Entity Framework 和多线程

sql - LINQ to SQL 可以查询数据库服务器端的 XML 字段吗?

C# : The best solution to parse the xml file?

C# 相当于 C union