Microsoft.Net框架程序设计学习笔记(21):数组的传递与返回、创建下限非0数组、快速访问数组

数组的传递与返回

  如果我们定义了一个返回数组引用的方法,而在某些情况下数组又不含任何元素,那么我们的方法即可返回一个null,也可返回一个长度为0的数组引用。当我们实现这样的方法时,微软强烈建议我们让该方法返回一个0长的数组,因为这样会简化调用该方法的开发人员的编码工作。

  同理,我们应该以同样的方式来处理字段。

创建下限非0的数组

  使用Array.CreateInstance静态方法可以动态创建下限非0的数组。

  示例代码:

  可使用Array.GetLowerBound和Array.GetUpperBound方法来获取此类数组的上下限索引号,以方便编码。

快速访问数组

  我们每次访问一个数组中的元素时,CLR都会确保索引不会超出数组的上下限。CLR的索引检查会有一些性能方面的代价。如果大家对自己的代码有足够的信心,并且不介意使用非安全代码,则可在访问一个数组时不让CLR执行索引检查。

  示例代码如下:

  
    
unsafe static void main()
{
Int32[] arr
= new Int32{1, 2, 3, 4, 5};
//获取一个指向数组第0元素的指针
fixed(Int32 * element = &arr[0])
{
for(Int32 x = 0, n = arr.Length; x < n; x++)
{
Console.WriteLine(element[x]);
}
}
}

  非安全数组操作只可用于元素为以下类型的数组:SByte、Byte、Int16、UInt16、Int32、UInt32、Int63、UInt64、Char、Single、Double、Decimal、Boolean、枚举类型,或字段为上面所述类型的结构类型。

你可能感兴趣的:(Microsoft)