C#关于的简单问题

来源:百度知道 编辑:UC知道 时间:2024/06/29 00:32:50
static void Add(int i)
{
i++;
}
static void AddWithRef(ref int i)
{
i++;
}
当我调用Add(i1);和Add(c.i);结果有什么不同?为什么?

有的朋友说错了吧
这两个都是无返回类型的

只不过里面执行的操作意义不同,要区别他们对同一个数的影响才是

第一个,传值,对原参数i没有影响
第二个,reference,传过去的是一个引用,会直接修改原i的值

用C语言来说,一般数组作为函数的参数就类似第二个

class RefExample
{
static void Method(ref int i)
{
i = 44;
}
static void Main()
{
int val = 0;
Method(ref val);
// val is now 44
}
}

第二个是引用传递
第一个返回 i
第二个返回 i+1

一个是传递值,另外一个是传递变量

这是一个百度hi的讨论群,你有兴趣的话加入.

如果i的值为1的话.。
;则Add()这个方法返回1
;第二则返回i+1;