我们在c#中调用方法的时候,是否曾担心过我们传进去的参数会被修改,或者担心其不被修改;本文介绍了常见的几种情况,并做了代码测试,可以做个参考。
测试方法:
1. 定义两个类,IntClass(仅包含一个int类型的属性)及StringClass(仅包含一个string类型的属性)。
2. 测试时,定义四个分别为以下类型:int,string,IntClass,StringClass的变量。
3. 对于每一个变量,定义两个方法(带ref及不带ref关键字),在方法中修改参数的值;4个变量共计8个方法。
4. 观察每次方法调用,是否对方法调用之外的变量产生影响。
测试代码:
namespace RefTest
{
public class IntClass
{
public int I { get; set; }
}
public class StringClass
{
public string S { get; set; }
}
class Program
{
public static void IntTest(int i)
{
i++;
}
public static void IntTest2(ref int i)
{