ref 关键字会导致通过引用传递的参数,而不是值,引用参数的值与基础参数变量的值始终是一样的,传递给 ref 参数的参数必须初始化。
out 关键字会导致参数通过引用来传递,尽管作为 out 参数传递的变量不必在传递之前进行初始化,但被调用的方法需要在返回之前赋一个值。另外,当希望方法返回多个值时,声明 out 方法很有用。
最后说一点,通过引用传递参数(使用 ref 或 out)与通过引用类型传递参数的区别,前者没有由值类型到引用类型的封装过程,后者如果是将值作为引用类型传递,则先需要封装为引用类型。
个人感觉这种机制不易过多使用,会破坏程序的封装性,不利于维护。