在C#项目中,数组可以作为值、引用或输出参数传递给方法。并且在使用过程中,可以根据具体要求灵活使用。当使用数组参数时,必须遵循如下三个原则。
1.作为值参数
当把数组作为值参数传入时,在传入数组前必须创建数组对象,并且传入前的数组元素值可以传入方法,具体如下。
1)如果方法内没有改变数组对象的值,而是仅仅改变了数组元素的值,则在方法内修改的数组元素值可以从方法内带出。
2)如果方法内改变了数组对象的值,则在方法内修改的数组元素值不会从方法内带出。
2.作为引用参数
当把数组作为引用参数传入时,在传入数组前必须创建数组对象。传入前的数组元素值可以传入方法,而在方法内修改的数组元素值也可以从方法内带出。
3.作为输出参数
当把数组作为输出参数传入时,在传入数组前可以创建数组对象,也可以不创建数组对象。如果在传入数组前创建了数组对象,则传入方法后会忽略该数组对象的值。所以只有在方法内创建数组对象时,才可以从方法内带出数组元素值。
实例19:交换处理数组内的数据
下面通过一个简单实例来说明使用数组参数的具体流程,本实例保存在“光盘:\daima\7”文件夹内,项目名为shuzucanshu。实例的功能是通过方法对数组内的数据进行交换处理。实例文件的主要代码如下所示:
(www.xing528.com)
上述实例代码的设计流程如下。
1)定义方法mm(),实现变量数据a和b的交换处理,可以交换成功。
2)定义方法mm2(),实现变量数据a和b的交换处理,不可以交换成功。
3)定义方法mm3(),实现变量数据a和b的交换处理,可以交换成功。
4)分别调用各方法,将对变量a和b交换后的结果输出。
执行后将调用方法并输出对应的处理结果,效果如图7-9所示。
多学一招
用params修饰符声明的参数是参数数组。不能将params修饰符与ref和out修饰符组合起来使用。
在一个方法的调用中,允许通过以下列两种方式之一来为参数数组指定对应的参数。
1)赋予参数数组的参数可以是一个表达式,它的类型可以隐式转换为该参数数组的类型。在此情况下,参数数组的作用与值参数完全一样。
2)此调用可以为参数数组指定零个或多个参数,其中每个参数都是一个表达式,它的类型可隐式转换为该参数数组的元素的类型。在此情况下,此调用创建一个长度对应于参数个数、类型与该参数数组的类型相同的一个数组实例,并用给定的参数值初始化该数组实例的元素,并将新创建的数组实例用做实参。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。