返回值
写一个名为 twice 的方法,接收名为 n 的 int,并把该数的两倍交回去。页头以 int 开头,不是 void:static int twice(int n)。在花括号里写 return n * 2;。在 Main 里写出调用结果:Console.WriteLine(twice(7));。屏幕应显示一行:14。twice 本身不调用 WriteLine。它只把 14 交回去。Main 写出那个数。这种交回就是本页所教的内容。请保留公共类名 Pine。
把一个数交回给 Main
在参数页里,greet 和 show 在方法体内部写出。调用把值送进去,方法写到屏幕。这里方法仍接收一个值,但也往外送出一个值。单词 return 标记那个外出的值。Main 可以存下它,或写出它。
打开 Pine 文件。类名保持 Pine。本页不重命名类型。若你仍只有在方法里写 hi lena 的 greet 演示,且那就是 Main 里的全部内容,删掉它。删掉任何残留的 ring();。删掉任何 ReadLine 行。你保留的文件不等待键入。
在 Main 之外、仍在类的花括号内,页头写 int,因为回来的值是 int。括号之间的 int n 仍是参数——与上一页同一想法。方法体只有一条语句:return n * 2;。它把 n 乘以 2,并把乘积交回给调用 twice 的一方。本页的 twice 里没有 Console.WriteLine。运行前先保存文件。完整的第一个程序在下一个框里。
你保留的文件
这是完整的小程序。twice 计算。Main 写出。
using System;
public class Pine
{
public static void Main()
{
Console.WriteLine(twice(7));
}
static int twice(int n)
{
return n * 2;
}
}
从头读。using System; 准备短名。public class Pine 命名类型。public static void Main() 是运行时开始处。调用 twice(7) 把 7 送进 n。static int twice(int n) 持有 return n * 2;。Console.WriteLine 写出交回来的值。屏幕上一行:14。
用 dotnet run 运行。程序写出一行后停止。它不等你键入。若 dotnet run 在等待,文件里仍有 ReadLine。删掉那一行,保留 Console.WriteLine(twice(7)); 以及上面的 twice 方法。屏幕显示 14。若屏幕显示 hi lena,残留的 greet 调用仍在运行。若屏幕显示字母 twice,写出行给该词加了引号:Console.WriteLine("twice");。屏幕显示错误行时,你不必重装 .NET SDK。
按顺序走完一次完整运行。C# 从 Main 开始。调用 twice(7) 把 7 送进 n。在 twice 里,return n * 2; 算出 14,并把那个 14 交回给 Main。然后 WriteLine 写出 14。twice 自己从未写到屏幕。若把调用改成 twice(3),屏幕应显示 6。方法体保持不变;只有实参变化,返回的乘积随之变化。若屏幕显示 7 而不是 14,你在 twice 里写出了 n,或在 Main 里未调用 twice 就写出了实参——把加倍放在 return 行上,并写出调用的结果。
重要的分界是谁对屏幕说话。本页里,twice 只通过 return 对 Main 说话。Main 通过 WriteLine 对屏幕说话。因此页头不能再写 void:必须有东西回来,好让 Main 写出。当你先把结果存进 result 时,你仍在用同一种交回;你只是把写出推迟一行。
写出 Main 收到的值
你也可以先把返回值保存在 Main 里的一个名字中,再写出。若想换屏幕上的那一行,只改调用里的数字。不要动 return n * 2;。
using System;
public class Pine
{
public static void Main()
{
int result = twice(7);
Console.WriteLine(result);
}
static int twice(int n)
{
return n * 2;
}
}
这是第二个文件。它用保存的名字教同一个 return。运行 dotnet run。仍显示一行:14。调用先结束并填满 result。然后 WriteLine 写出 result。两种形状——直接写出调用,或先存再写——都使用 twice 里同一个 return。twice(0) 应写出 0。twice(10) 应写出 20。每次 Main 写出 twice 交回的东西。看过保存形状后,若你想保留的是单行调用,把保留文件改回:Main 里的 Console.WriteLine(twice(7));。
若 twice 页头仍写 void,但方法体有 return n * 2;,构建会写出错误——void 表示什么都不回来,因此带值的 return 不合适。若页头写 int 但方法体没有 return,构建也会写出错误——在这个初学形状里,int 方法必须交回一个 int。若方法体只写字从不返回,你又回到了参数页的想法;本页要数字落在 Main 手里。
void 对比带类型的 return
并排读这两种形状。void 方法运行其方法体后结束。带类型返回的方法必须用 return 交回一个值。当返回类型不是 void 时,Main 把该调用当作那个值。
📊 void body versus return
| Shape | What the method does | What Main often does |
|---|---|---|
void show(int n) |
writes inside the body | calls show(9); and may write nothing else |
int twice(int n) |
return n * 2; |
writes or stores twice(7) |
常见混淆是在 twice 里放 Console.WriteLine(n * 2);,页头仍是 int 却没有 return。然后构建会抱怨,或者你把页头改回 void,于是 Main 再也没有可从调用写出的值。另一种混淆是页头写 int 却写无值的 return;。保持 return n * 2;,让返回表达式的类型与 int 匹配。在 Main 里写 Console.WriteLine("twice"); 会写出单词 twice;它不调用方法。想在屏幕上看到 14 时,保持 Console.WriteLine(twice(7))。
残留的、只在方法里写 hi lena 的 greet 演示可以坐在同一文件里并搅乱屏幕。把 Main 清到使用 twice 的那行 WriteLine,并保留一个会返回的方法。不要把 twice 嵌进 Main 的花括号里。方法放在类里,挨着 Main。
你可以写 static int twice(int n),返回一个计算出的值,并从 Main 写出该值。屏幕显示 Main 收到的数字,而不是方法自己写出的一行。当你需要交回一个值时,void 是错误的页头。下一页是 overloading:当参数列表不同时,多个方法可以共用一个名字。
屏幕持有 Main 收到的内容
你保留的文件在 Main 写出 twice(7) 时写出 14。单词 return 在方法体里,且 return 不会作为打印标签出现在屏幕上。给 twice 加引号会写出字母,而不是调用结果。把 twice 嵌进 Main 不是本课构建的形状。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部