using System; class Method ... { public static void ValueMethod(int i) ...{ i++; } public static void RefMethod(ref int i) ...{ i++; } public static void OutMethod(out int i) ...{ i = 0; //必须在方法体内赋值 i++; } static void Main() ...{ int a = 0; ValueMethod(a); Console.WriteLine("i=" + a); int b = 0; RefMethod(ref b); Console.WriteLine("i=" + b); int c; OutMethod(out c); Console.WriteLine("i=" + c); }} Ref与Out类型参数是引用类型的参数,所以参数的值都会被方法体改变,不同的是Out参数必须要在方法体内部初始化参数。Value是值类型参数,其在内存中复制一块内存空间并赋值,是对参数副本进行操作,所以不会改变参数本身的值.