关于c#中数组的初学者问题

时间:2013-11-10 20:33:24

标签: c# arrays

1)最好将数组作为参数或“return”返回?

2)在锯齿状数组中

`GetLength(0)` is the same with Length ?

3)string.copy()Clone()之间的区别是什么?

4)string.Concat(string1, string2)string1 + string2是否相同?

5)SetValueanArray[0] = ...?

之间的区别是什么?

2 个答案:

答案 0 :(得分:5)

  1. 对阵列无关紧要。作为最佳实践,尝试使用return语句而不是通过参数列表返回。使用参数列表的唯一原因是,如果您有多个输出,并且通常您希望设计较小的方法来做一件事。

  2. Clone()方法适用于ICloneable接口,遗憾的是,该接口未被充分定义为深层和浅层副本,因此最好避免使用。

  3. String.Concat() vs string1 + string2结果是相同的,实现这些结果的方法不同,有时会产生明显的性能影响。

  4. IIRC,数组的索引器属性([]括号)只调用SetValue()方法。没什么,真的。

答案 1 :(得分:0)

关于本书中的第一个问题我读到它说:“要通过方法的返回类型返回一个数组,必须声明另一个数组,并在方法中为它本地分配空间。这个额外的空间用于如果数组作为参数发送,则数组是不必要的,因为数组总是通过引用传递。将数组作为参数发送传递调用方法中声明的数据的地址,并且无需声明本地数组。那说什么是假的?