C#中引用传递

static void showDouble(ref int val)

{

        val *= 2;

        Console.WriteLine("val doubled = {0}",val);

}

//调用过程

int myNumber = 5;

Console.WriteLine("myNumber = {0}", myNumber);

showDouble(ref myNumber);

Console.WriteLine("myNumber = {0}", myNumber);

//输出结果

myNumber = 5

val doubled = 10

myNumber = 10

 

值传递的函数并没有改变传入函数的变量的值,只是在函数中把传入变量当做一个普通的值进行操作,或返回一个操作完后的值,而引用传递则是直接修改了传入变量的值,由上例可见,声明函数和调用函数的时候只要在值前加上ref关键字,系统就识别为引用传递,类似C中的指针

 

需要注意的有,引用传递的函数中,被函数调用中必须使用变量,不能使用常量,且使用的变量必须是被初始化过的变量

使用

const int myNumber = 5;

int myNumber;

都是非法的

posted @ 2009-06-15 17:54  适渊  阅读(179)  评论(0编辑  收藏  举报