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);
posted @ 2023-10-04 14:45  天空之城00  阅读(124)  评论(0)    收藏  举报