日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

函数中out参数的应用

發布時間:2024/1/18 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 函数中out参数的应用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

函數中out參數的應用

1.out參數使用情況說明

如果你在一個方法中,返回多個相同類型的值的時候,可以考慮返回一個數組; 但是,如果返回多個不同類型的值的時候,返回數組就不行了,那么這個時候,我們可以考慮使用out參數; out參數側重于在一個方法中可以返回多個不同類型的值(當然也可以返回多個相同類型的值)。

2.out參數應用

2.1 示例1

寫一個方法,求一個整數數組中的最大值、最小值、總和、平均值。
(1)因為這些返回值類型相同,所以第一種思路就是將這些返回值放到整數數組中。

public static int[] GetMaxMinSumAvg(int[] nums){int[] arr = new int[4];arr[0] = nums[0];//最大值arr[1] = nums[0];//最小值arr[2] = 0;//總和arr[3] = 0;//平均值for (int i = 0; i < nums.Length; i++){if (arr[0] < nums[i]){arr[0] = nums[i];}if (arr[1] > nums[i]){arr[1] = nums[i];}arr[2] += nums[i];}arr[3] = arr[2] / nums.Length;return arr;}

(2)第二種運用out參數

/// <summary>/// 計算一個整數數組的最大值、最小值、平均值、總和/// </summary>/// <param name="nums">要求值的數組</param>/// <param name="max">多余返回的最大值</param>/// <param name="min">多余返回的最小值</param>/// <param name="sum">多余返回的總和</param>/// <param name="average">多余返回的平均值</param>public static void Test(int[] nums, out int max, out int min, out int sum, out int average){//注意點://out參數要求在方法的內部必須為其賦值max = nums[0];//最min = nums[0];//最sum = 0;//總和for (int i = 0; i < nums.Length; i++){if (max < nums[i]){max = nums[i];}if (min > nums[i]){min = nums[i];}sum += nums[i];}average = sum / nums.Length;}

上面返回的都是同一種變量類型,我們可以改一下上述方法,讓它返回不同類型的變量:

public static void Test(int[] nums, out int max, out int min, out int sum, out int average,out bool flag,out string name,out double d){//注意點://out參數要求在方法的內部必須為其賦值max = nums[0];//最min = nums[0];//最sum = 0;//總和for (int i = 0; i < nums.Length; i++){if (max < nums[i]){max = nums[i];}if (min > nums[i]){min = nums[i];}sum += nums[i];}average = sum / nums.Length;flag = false;name = "zhangsan";d = 3.14;}3.調用函數:static void Main(string[] args){//寫一個方法,求一個數組中的最大值、最小值、總和、平均值int[] numbers = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };//int[] a = Program.GetMaxMinSumAvg(numbers);//Console.WriteLine("最大值是{0},最小值是{1},總和是{2},平均值是{3}", a[0], a[1], a[2], a[3]);//Console.ReadKey();int max1;//變量是先聲明后賦值再使用,這里沒賦值是因為函數中給了值int min1;int sum1;int avg1;//bool flag1;//string name1;//double data;//Program.Test(numbers,out max1,out min1,out sum1,out avg1,out flag1,out name1,out data );//Console.WriteLine("最大值是{0},最小值是{1},總和是{2},平均值是{3}", max1, min1, sum1, avg1);// Console.WriteLine(flag1);//Console.WriteLine(name1);//Console.WriteLine(data);Program.Test(numbers,out max1,out min1,out sum1,out avg1);Console.WriteLine("最大值是{0},最小值是{1},總和是{2},平均值是{3}", max1, min1, sum1, avg1);Console.ReadKey();}

2.2 示例2

分別提示用戶輸入用戶名和密碼;方法判斷用戶輸入是否正確;
返回用戶一個登錄結果,以及單獨返回給用戶一個登錄信息;
例如:用戶名錯誤,除了返回登陸結果之外,還要返回一個“用戶名錯誤”。

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace out練習_0109 {internal class Program{static void Main(string[] args){//分別提示用戶輸入用戶名和密碼//方法判斷用戶輸入是否正確//返回用戶一個登錄結果,以及單獨返回給用戶一個登錄信息//例如:用戶名錯誤,除了返回登陸結果之外,還要返回一個“用戶名錯誤”Console.WriteLine("請輸入用戶名");string name = Console.ReadLine();Console.WriteLine("請輸入密碼");string password = Console.ReadLine();string msg1;bool result = IsLogin(name, password, out msg1);Console.WriteLine("登錄結果:{0},返回信息:{1}", result, msg1);Console.ReadKey();}/// <summary>/// 判斷登錄是否成功/// </summary>/// <param name="name">用戶名</param>/// <param name="pwd">密碼</param>/// <param name="msg">多余返回的登錄信息</param>/// <returns>返回登錄結果</returns>public static bool IsLogin(string name, string pwd, out string msg){if (name == "admin" && pwd == "8888"){msg = "登錄成功";return true;}else if (name == "admin"){msg = "密碼錯誤";return false;}else if (pwd == "8888"){msg = "用戶名錯誤";return false;}else{msg = "未知錯誤";return false;}}} }

2.3 示例3

寫一個方法實現int.TryParse()函數的功能

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;namespace out參數練習_0110 {internal class Program{static void Main(string[] args){int num;bool flag = int.TryParse("123", out num);int num1;bool flag1 = Run("21", out num1);}public static bool Run(string s, out int result){result = 0;try{result = Convert.ToInt32(s);return true;}catch (Exception){return false;}}} }

3.總結

1.out參數側重于在一個方法中可以返回多個不同類型的值(當然也可以返回多個相同類型的值); 2.當你寫方法的過程中,out參數一定要在方法的內部為其賦值;public static void Test(int[] nums, out int max, out int min, out int sum, out int average){//注意點://out參數要求在方法的內部必須為其賦值max = nums[0];//最min = nums[0];//最sum = 0;//總和average=0} 3. 你寫的這個方法可以有void,也可以沒有void, 沒有void,我們可以把要返回的值放在out參數中:因為out參數就是多余返回的值 ; 4.調用時,要先聲明out 參數變量,可以不用先賦值,因為再調用的過程中我們肯定會為其賦值;int max1;//變量是先聲明后賦值再使用,這里沒賦值是因為函數中給了值int min1;int sum1;int avg1;Program.Test(numbers,out max1,out min1,out sum1,out avg1);

總結

以上是生活随笔為你收集整理的函数中out参数的应用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。