您好,登錄后才能下訂單哦!
這篇文章主要講解了“C#輸出參數(shù)out問題如何解決”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“C#輸出參數(shù)out問題如何解決”吧!
方法聲明時,使用out修飾符聲明的形參,成為輸出參數(shù)。
1、輸出參數(shù)不創(chuàng)建新的儲存位置。
2、輸出參數(shù)表示的儲存位置就是實參表示的儲存位置。
3、傳遞給輸出參數(shù)的實參在方法調(diào)用前不需要強制初始化,在方法內(nèi)部使用該形參時,需要強制賦值一次。
使用out參數(shù),可以使方法返回多個返回值。
static void Main(string[] args) { int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; int max; int min; int sum; double avg; int[] arr = GetMaxMinSumAvg(numbers, out max, out min, out sum, out avg); Console.WriteLine(max); Console.WriteLine(min); Console.WriteLine(sum); Console.WriteLine(avg); Console.WriteLine(arr.Length); Console.ReadKey(); } public static int[] GetMaxMinSumAvg(int[] nums, out int max, out int min, out int sum, out double avg) { int[] res = new int[4]; max = nums.Max(); min = nums.Min(); sum = nums.Sum(); avg = nums.Average(); return res; }
ref參數(shù)是引用,out參數(shù)為輸出參數(shù)。
1、當(dāng)希望方法返回多個值時,聲明 out 方法非常有用。
2、不必初始化作為 out 參數(shù)傳遞的變量。然而,必須在方法返回之前為 out 參數(shù)賦值。
3、屬性不是變量,不能作為 out 參數(shù)傳遞。
static void Main(string[] args) { string s = "123"; int result; bool b = MyTest(s,out result); } public static bool MyTest(string s, out int result) { bool isTrue; try { result = Convert.ToInt32(s);//使用out參數(shù)必須在定義方法內(nèi)進(jìn)行賦值 isTrue = true; } catch { isTrue = false; result = 0; } return isTrue; }
該方法返回類型為bool類型,在返回bool類型的同時也順帶返回了int類型的result變量。即,返回兩種變量類型。
1、必須使用初始化過的變量
2、屬性不是變量,不能作為 ref 參數(shù)傳遞。
3、Ref則用在要要被調(diào)出使用的方法修改調(diào)出使用者的引用的時候。
ref參數(shù)在定義的方法內(nèi)對其進(jìn)行處理,再將結(jié)果返回,定義方法無需多余的返回類型。
static void Main(string[] args) { //使用ref參數(shù)來交換兩個數(shù)字的值 int a = 1; int b = 2; Change(ref a, ref b); Console.WriteLine("a{0},b{1}",a,b); Console.ReadKey(); } public static void Change(ref int a, ref int b) { int temp; temp = a; a = b; b = temp; }
感謝各位的閱讀,以上就是“C#輸出參數(shù)out問題如何解決”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對C#輸出參數(shù)out問題如何解決這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關(guān)知識點的文章,歡迎關(guān)注!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。