out 参数
out 参数
- 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组;但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,可以考虑使用
out 参数,out 参数侧重于在一个方法中可以返回多个不同类型的值。 -
out 参数要求在方法的内部必须为其赋值,而方法外可以不赋值。
public static void Test(int[] nums, out int max, out int min, out int sum, out int avg, out bool b, out string s, out double d)
{
// out 参数要求在方法的内部必须为其赋值
max = nums[0];
min = nums[0];
sum = 0;
for (int i = 0; i < nums.Length; i++)
{
if (nums[i] > max)
{
max = nums[i];
}
if (nums[i] < min)
{
min = nums[i];
}
sum += nums[i];
}
avg = sum / (nums.Length);
b = true;
s = "123";
d = 3.14;
}
调用:
int[] nums = { 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int max;
int min;
int sum;
int avg;
bool b;
string s;
double d;
Test(nums, out max, out min, out sum, out avg, out b, out s, out d);
Console.ReadLine(max); // 9
Console.ReadLine(min); // 1
Console.ReadLine(sum); // 45
Console.ReadLine(avg); // 5
Console.ReadLine(b); // true
Console.ReadLine(s); // 123
Console.ReadLine(d); // 3.14
使用 out 参数做登录
// 判断登录是否成功
public static bool IsLogin(string name, string pwd, out string msg)
{
if (name == "admin" && pwd == "admin")
{
msg = "登录成功!";
return true;
}
else if (name == "admin")
{
msg = "密码错误!";
return false;
}
else if (pwd == "admin")
{
msg = "用户名错误!";
return false;
}
else
{
msg = "未知错误!";
return false;
}
}
调用:
Console.WriteLine("请输入用户名:");
string username = Console.ReadLine();
Console.WriteLine("请输入密码:");
string password = Console.ReadLine();
string msg;
bool b = IsLogin(username, password, out msg);
Console.WriteLine("登录结果:", b);
Console.WriteLine("登录信息:", msg);

浙公网安备 33010602011771号