out和ref属于引用类型传递他们传的是内存地址不是传值.
ref 传递的参数是双向,可以传入也可以传出: class Program { static void Main(string[] args) { int iNumber = 100; int iTemp =Test(ref iNumber); Console.WriteLine("ref参数传出的值为a:{0}\nref传入后经方法retrun的值:{1}",iNumber,iTemp); Console.ReadKey(); } static int Test(ref int iNum) { int temp = iNum;//方法内可接收外部传入的值. iNum = 50; return temp; } }
out传递参数是单向的只能传出值.当需要从一个方法中传出多个值时用. class Program { static void Main(string[] args) { int iNumber; Test(out iNumber); Console.WriteLine("out参数传出的值是:{0}",iNumber); Console.ReadKey(); } static void Test(out int iNum) { //int temp = iNum;//错误! iNum = 50; //out传入的参数要先赋值才能使用. } }
|