价值分配是提高还是降低绩效,还是什么都不做?

时间:2018-08-07 10:31:06

标签: c# arrays

从未考虑过,但是确实进行了价值分配,例如int a = 100,提高性能还是降低性能还是什么都不做?现在,int a = 100并不是我真正想的,但可以说您有这样的事情:

 string[] a = new string[] { null, "a", "b", "", null }

 string[] b = new string[] { null, "a", "b", "", null }

 bool result = Equals(a, b);


 public static bool Equals<T>(T[] array, T[] buffer)
 {
      if (array != null && array.Length > 0 && buffer != null && buffer.Length > 0 && array.Length == buffer.Length)
      {
      for (int i = 0; i < array.Length; i++)
      {
           if (array[i] == null && buffer[i] != null)
           {
                break;
           }
           else if (array[i] != null && buffer[i] == null)
           {
                break;
           }
           else if (array[i].ToString() != buffer[i].ToString())
           {
                break;
           }
           else if (i == array.Length - 1)
           {
                return true;
           }
      }
      }
      return false;
 }

将先做T cell = array[i]T cell2 = buffer[i]in the Equals method),然后将cellcell2进行比较,以提高性能和速度,或者会降低性能和速度,或者它什么都没改变?

1 个答案:

答案 0 :(得分:0)

对数组元素array[i]的内存调用包括在汇编代码中将元素索引添加到基址中,但这实际上不花任何钱,就像调用变量cell一样容易。因此,在您的示例中,引入变量T cell = array[i]T cell2 = buffer[i]不会影响性能。

但是在其他一些情况下,当您的表达式需要更多时间进行计算时,可以合理地在开始时引入一个变量并保存一次值。