在c#中大家都知道一個方法可以返回一個值,也可以是返回void值。那麼怎麼返回一個多個值呢?
先看一個返回類型相同的多個值吧,因為類型相同,所以我們可以用一個數組來存放,實現一個方法返回多個值。代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace 第六天
{
class Program
{
static void Main(string[] args)
{
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9,10 };
int[] res = GetMaxMinSumAvg(nums);
Console.WriteLine("最大值{0}最小值{1}總和{2}平均值{3}",res[0],res[1],res[2],res[3]);
Console.ReadLine();
}
public static int[] GetMaxMinSumAvg(int[] nums)
{
//numsNew[0]最大值 1最小值 2總和 3平均值
int[] numsNew = new int[4];
numsNew[0] = nums[0];
numsNew[1] = nums[0];
numsNew[2] = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > numsNew[0])
{
numsNew[0] = nums[i];//遍歷nums[]中的數組,使最大值賦值給numNew[0]
}
if (nums[i] < numsNew[1])
{
numsNew[1] = nums[i];//遍歷數組,使最小值給numNew[1]
}
numsNew[2] += nums[i];
}
numsNew[3] = numsNew[2] / nums.Length;
return numsNew;
}
}
}
這段代碼就是能返回多個值,最大值,最小值,等;因為這些都是一個類型的,所以用數組就直接實現了。
如果不是一個類型的,怎麼實現呢。其實很簡單,用out參數就行了。舉一個簡單的例子,輸出鄧振振今年23歲了是個真男人。
用Console.WriteLine();就行了。為何要用out參數呢,這不是閒的蛋疼嗎。其實這個例子說明out參數的使用方法,即,一個方法返回多個不同類型的多個值,代碼如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace @out
{
class Program
{
static void Main(string[] args)
{
int age;
bool sex;
string name = Test(out age,out sex);
Console.WriteLine("{0}今年{1}歲了,是個{2}男人",name,age,sex);
}
public static string Test(out int num,out bool sex)//out必須在方法裡賦值
{
sex = true;
num = 23;
return "鄧振振";
}
}
}
代碼雖然簡單,可是也實現了一個方法返回多個值了。這個就是out的使用。
比如說我要一個方法返回一個登陸是否成功,和登陸信息,就需要out參數的使用,因為一個是bool類型的一個是string類型的,所以沒辦法用數組來弄,只能用out來實現,代碼如下:
public static bool b IsLogin(string userName,string userPwd,out string msg)
{
//
}
代碼呢?方法框架以給出,請讀者自己練習編寫代碼