ref参数和out参数实际上都是将值类型转化为引用类型。
但是他们还有区别:
在使用ref参数时,和其他方法传递参数一样,必须进行初始化,尽管在方法中会将其对应的值改变。但是在out参数使用的过程中是不需要去初始化的,更侧重于输出,方法对该变量进行的任何修改都会被保留下来。
ref参数:
static void SomeFunction(ref int i) { i = 10; } public static int Main() { int i = 20; //初始化 SomeFunction(out i); Consloe.WriteLine(i); return 0; }
out参数:
static void SomeFunction(out int i) { i = 10; } public static int Main() { int i; //未初始化 SomeFunction(out i); Consloe.WriteLine(i); return 0; }