【问题标题】:Iterating through an object array; foreach(var... vs. foreach(object遍历对象数组; foreach(var... vs. foreach(object
【发布时间】:2012-06-21 00:09:16
【问题描述】:
object[] objArray = new object[]{"blah", 4, "whatever"};

foreach(var value in objArray) vs. foreach(object value in objArray)

我很好奇它们之间的区别是什么,除了 var 在分配后必须保持其类型。这个比那个好吗?谢谢。

【问题讨论】:

    标签: c# arrays object foreach


    【解决方案1】:

    在你的例子中没有。但是,

    当声明 objects 时,你会得到: Boxing and Unboxing

    但是。使用 var 时,它的编译方式与您指定的确切类型名称完全相同。

    所以var tempval = 5;int tempval = 5; 相同

    【讨论】:

      【解决方案2】:

      从纯粹的功能角度来看,var 在这里只是object 的快捷方式,因为objArray 的元素是声明类型object

      使用object 是向正在阅读代码的人表明数组中的项目不知道是比object 更具体的任何类型的信号。使用var 并不意味着这一点。在您发布的最小情况下,您使用哪个程序的清晰度确实没有任何区别。

      另一方面,如果从上下文中不能立即清楚您正在使用什么类型的对象,那么显式声明该类型可能是有利的。另一方面,如果您正在迭代的集合元素的类型是冗长且突兀的,那么使用var 可能是有利的,这样读者的眼睛就会被代码的逻辑所吸引,而不是而不是一堆泛型参数。

      【讨论】:

        【解决方案3】:

        这两者之间没有区别,在这种情况下var 将是object

        【讨论】:

        • 感谢您的澄清。
        【解决方案4】:

        var 与任何其他类型的唯一区别是您让编译器确定类型。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2021-07-29
          • 2022-01-09
          • 1970-01-01
          • 2013-12-16
          • 2014-07-31
          • 1970-01-01
          • 2023-03-10
          相关资源
          最近更新 更多