C#: 引用变量与数值变量的区别
发布时间:2020-12-15 05:49:57 所属栏目:百科 来源:网络整理
导读:1. 值参数 当利用值向方法传递参数时,编译程序给实参的值做一份拷贝,并且将此拷贝传递给该方法。被调用的方法不传经修改内存中实参的值,所以使用值参数时,可以保证实际值是安全的。在调用方法时,如果形式化参数的类型是值参数的话,调用的实参的值必须
1. 值参数 复制代码 代码如下: using System; class Test { static void Swap(int x,int y){ int temp=x; x=y; y=temp; } static void Main(){ int i=1,j=2; Swap(i,j); Console.WriteLine("i={0},j={1}",i,j); } } 编译上述代码,程序将输出: i=1,j=2 2. 引用型参数 在方法中,引用型参数通常已经初始化。再看下面的例子。 复制代码 代码如下: using System; class Test { static void Swap(ref int x,ref int y){ int temp=x; x=y; y=temp; } static void Main(){ int i=1,j=2; Swap(ref i,ref j); Console.WriteLine("i={0},j); } } 编译上述代码,程序将输出: i=2,j=1
Main函数中调用了Swap函数,x代表i,y代表j。这样,调用成功地实现了i和j的值交换。 在方法中使用引用型参数,会经常可能导致多个变量名指向同一处内存地址。见示例: 复制代码 代码如下: class A { string s; void F(ref string a,ref string b){ s="One"; a="Two"; b="Three"; } void G(){ F(ref s,ref s); } } 在方法G对F的调用过程中,s的引用被同时传递给了a和b。此时,s,a,b同时指向了同一块内存区域。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |