快捷搜索:

总体了解C#(21.指针运算

[摘要]21.指针运算在C#中,指针运算可以被使用在被标为unsafe修饰符的方法里。当指针指向一个可被垃圾收集的对象的时候,编译器强迫使用fixed关键字去固定对象。这是因为垃圾收集器是靠移动对象来回收内存的。但是如果当你使用原始指针时,它所指的对象被移动了,那你的指针将指向垃圾。我认为这儿用unsafe

21.指针运算

在C#中,指针运算可以被使用在被标为unsafe修饰符的方法里。当指针指向一个可被垃圾收集的对象的时候,编译器强迫使用fixed关键字去固定对象。这是因为垃圾收集器是靠移动对象来回收内存的。但是如果当你使用原始指针时,它所指的对象被移动了,那你的指针将指向垃圾。我认为这儿用unsafe这个关键字是个好的选择―它不鼓励开发人员使用指针除非他们真的想这么做。

22.多维数组

C#可以创建交错数组【译注:交错数组是元素为数组的数组。交错数组元素的维度和大小可以不同】和多维数组。交错数组和Java的数组非常类似。多维数组使得可以更有效、更准确地表达特定问题。以下是这种数组的一个例子:

int [,,] array = new int [3, 4, 5]; // 创建一个数组

int [1,1,1] = 5;//【译注:此行代码有误:应为array[1,1,1] = 5;】

使用交错数组:

int [][][] array = new int [3][4][5]; // 【译注:此行代码有误,应为:int [][][] array = new int[3][][];】

int [1][1][1] = 5; 【译注:此行代码有误:应为array[1][1][1] = 5;】【译注:小心使用交错数组】

若和结构联合使用,C#提供的高效率使得数组成为图形和数学领域的一个好的选择。

您可能还会对下面的文章感兴趣: