关于函数的参数传递问题,本人搜了一些资料大致了解如下
void func(string arg )
其中 arg 传递过来是个string字符串的地址 并不是string的值
c#把这种传递方式叫做值传递(地址也是一种值)
那么,什么是引用传递呢?
就是ref 或out 标记的参数才是引用传递?
解决方案
40
举例,
假如是
struct A
{
public int i;
}
void foo(A a)
{
a.i = 2;
}
调用
A a;
a.i = 1;
foo(a);
a.i还是1。
将foo修改为
void foo(ref A a)
{
a.i = 2;
}
则a.i变成2。
假如是
struct A
{
public int i;
}
void foo(A a)
{
a.i = 2;
}
调用
A a;
a.i = 1;
foo(a);
a.i还是1。
将foo修改为
void foo(ref A a)
{
a.i = 2;
}
则a.i变成2。