有大佬能给我解答一下这两个问题吗?

xuerueheng 2019-08-03 04:13:28
先上代码

static void Main(string[] args)
{
int a = 1, b = 2;
int zuida=0, zuixiao=0, he=0;
double junzhi=0;
Xue(a, b, ref zuida, ref zuixiao,ref he,ref junzhi);
Console.WriteLine("最大{0},最小{1},和{2},均值{3}",zuida,zuixiao,he,junzhi);
Console.ReadKey();
}
static void Xue(int a, int b,ref int zuida,ref int zuixiao,ref int he,ref double junzhi)
{
if (a < b)
{
zuida = b;
zuixiao = a;
}
else
{
zuida = a;
zuixiao = b;
}
he = a + b;
junzhi = he / 2;
}

截图

我想问的问题有两点,第一点是,为什么我输出的均值是1而不是1.5?第二点是我正在学函数之高级参数,在这我学了关键字“ref”和“out”,ref我已经用到并理解了,但out关键字是必须的吗?因为我上面那个程序好像已经实现了输出多个返回值的功能了。(如果有错误的地方请大佬指正)
...全文
74 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuerueheng 2019-08-03
  • 打赏
  • 举报
回复
引用 3 楼 github_36000833 的回复:
其实你这个练习就应该用out。


static void Main(string[] args)
{
int a = 1, b = 2;
Xue(a, b, out int zuida, out int zuixiao, out int he, out double junzhi);
Console.WriteLine("最大{0},最小{1},和{2},均值{3}", zuida, zuixiao, he, junzhi);
Console.ReadKey();
}
static void Xue(int a, int b, out int zuida, out int zuixiao, out int he, out double junzhi)
{
if (a < b)
{
zuida = b;
zuixiao = a;
}
else
{
zuida = a;
zuixiao = b;
}
he = a + b;
junzhi = he / 2;
}

明白,大佬,谢谢
github_36000833 2019-08-03
  • 打赏
  • 举报
回复
其实你这个练习就应该用out。

static void Main(string[] args)
{
    int a = 1, b = 2;
    Xue(a, b, out int zuida, out int zuixiao, out int he, out double junzhi);
    Console.WriteLine("最大{0},最小{1},和{2},均值{3}", zuida, zuixiao, he, junzhi);
    Console.ReadKey();
}
static void Xue(int a, int b, out int zuida, out int zuixiao, out int he, out double junzhi)
{
    if (a < b)
    {
        zuida = b;
        zuixiao = a;
    }
    else
    {
        zuida = a;
        zuixiao = b;
    }
    he = a + b;
    junzhi = he / 2;
}
xuerueheng 2019-08-03
  • 打赏
  • 举报
回复
引用 1 楼 github_36000833 的回复:
第一点
程序的一般做法是:整数 除于 整数,结果为整数 (取整)。
如果要求小数结果,可以写成 junzhi = he / 2.0;


out关键字
文法上或许不必要。
但是,它清晰传达了一种行为,即"结果值"完全没有用到"输入值",有它存在的理由。

那大佬我在平常使用时要用这个关键字吗?还是只是知道它就好
github_36000833 2019-08-03
  • 打赏
  • 举报
回复
第一点 程序的一般做法是:整数 除于 整数,结果为整数 (取整)。 如果要求小数结果,可以写成 junzhi = he / 2.0; out关键字 文法上或许不必要。 但是,它清晰传达了一种行为,即"结果值"完全没有用到"输入值",有它存在的理由。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧