using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { int i = 10;//值类型 int j = 10;//必须初始化 int k;//不需要初始化 int[] iarr = { 1, 2, 3, 4 };//引用类型 SetI(i);//值传递 SetS(iarr);//引用传递 SetSI(ref j);//ref SetOI(out k);//out Console.WriteLine(i);//输出10 Console.WriteLine(iarr[0]);//输出100 Console.WriteLine(j);//输出20 Console.WriteLine(k);//输出100 Console.ReadKey(); } //值类型不会改变原来的值(创建一个新的副本)【值传递】 static void SetI(int i) { i = 20; } //引用类型,会改变原来的值【引用传递】 static void SetS(int[] i) { i[0] = 100; } //值传递,使用ref迫使使用引用传递,会改变原始的值 static void SetSI(ref int j) { j = 20; } static void SetOI(out int k) { k = 100; } } }
转载于:https://blog.51cto.com/962410314/1435537