参数
写一个名为 greet 的方法,向内接收一个词。在括号里写 string name。在方法体里用 Console.WriteLine("hi " + name); 写出 hi、一个空格,然后是 name。从 Main 调用 greet("lena");。屏幕应显示一行:hi lena。字母 lena 没有硬编码在方法里。它们经调用到来,并在该次经过中落在名字 name 里。这种交接就是本页所教的内容。请保留公共类名 Pine。
括号里的一个名字
在方法页里,ring 后面的括号一直是空的。写出行始终是 ding。这里括号持有一个带类型的名字,好让每次调用都能传入不同的值。那个带类型的名字就是参数。你在调用里写的值,就是该次经过的实参。
打开 Pine 文件。类名保持 Pine。本页不重命名类型。若 Main 仍只持有带空括号的 ring(); 演示,且你已准备好本页形状,删掉它。删掉任何残留的 foreach。删掉任何 ReadLine 行。你保留的文件不等待键入。
在 Main 外、仍在类的花括号内,本入门形状的头标以 static void 开头。括号之间是 string 然后 name — 先类型,再参数名。C# 在本形状上把类型 string 写成小写 s。方法体使用不加引号的 name,并用加号接到固定文本 "hi "。"hi " 周围的引号标出固定字母。裸的 name 标出从调用到来的值。运行前先保存文件。完整的第一份程序在下一框。
你保留的文件
这是你先运行的版本。Main 持有括号里带值的调用。greet 持有使用该值的写出行。
using System;
public class Pine
{
public static void Main()
{
greet("lena");
}
static void greet(string name)
{
Console.WriteLine("hi " + name);
}
}
从顶往下读。using System; 准备短名字。public class Pine 命名类型。public static void Main() 是运行时开始的地方。调用 greet("lena"); 把文本送进参数。static void greet(string name) 持有 Console.WriteLine("hi " + name);。屏幕上一行:hi lena。
用 dotnet run 运行。程序写出一行后停止。它不等你键入。若 dotnet run 在等待,文件里仍有 ReadLine。删掉那一行,保留 greet("lena"); 以及上面的 greet 方法。屏幕显示 hi lena。若屏幕只显示 ding,旧的 ring(); 调用仍在运行。若屏幕显示字母 name,某条写出行把该词放进了引号:Console.WriteLine("name");。屏幕行不对时,不要重装 .NET SDK。
按顺序走完一次完整运行。C# 从 Main 开始。调用 greet("lena"); 把文本 lena 送进参数 name。在 greet 里,WriteLine 拼出 hi、一个空格,然后是该值,所以屏幕显示 hi lena。然后 greet 结束,Main 也结束。你没有在 Main 里写 Console.WriteLine("hi lena");。你把固定部分写在 greet 下一次,并从调用传入 lena。
参数在调用填入之前是空的。第一次调用时,name 只在该次经过中持有 lena。稍后用 "sam" 调用时,同一个参数名持有不同的值。你不为第二个词再建第二个方法;你向同一个头标传入新的实参。
同一方法,不同的词
只改 Main,让它用两个不同的实参调用 greet 两次。不要动 greet 方法本身。
using System;
public class Pine
{
public static void Main()
{
greet("lena");
greet("sam");
}
static void greet(string name)
{
Console.WriteLine("hi " + name);
}
}
这是第二份文件。它用两次调用教同一个方法。运行 dotnet run。屏幕应显示两行:hi lena,然后 hi sam。第一次调用用 lena 填满 name。第二次调用用 sam 填满 name。你没有在 greet 下复制 WriteLine。你只改了调用里的值。
若头标仍是 string name 时你用空括号调用 greet(),build 会写出错误 — 调用必须提供一个 string。若同一 Main 里仍留着方法页上带空括号的旧 ring();,该调用与 greet 不匹配,残留的 ring 方法仍可能在你的 hi 行旁边写出 ding。把 Main 清成这节课需要的 greet 调用。看过两行后,若你想保留的形状是一次调用,把单次调用文件放回去:Main 里一个 greet("lena");。
把整数当作值
参数不只用于文本。再写一个接收名为 n 的 int 并写出它的方法。从 Main 用整数调用,例如 show(9); 与 show(4);。
using System;
public class Pine
{
public static void Main()
{
show(9);
show(4);
}
static void show(int n)
{
Console.WriteLine(n);
}
}
这是第三份文件。它不是你为 greet 形状保留的文件。运行 dotnet run。屏幕应显示两行:9,然后 4。调用里 9 或 4 不加引号 — 它们是 int 值,不是文本。在 show 里,Console.WriteLine(n) 写出到来的数字。看过那两行后,把 greet 演示放回去。两个版本都是有效的 C#。它们教同一件事:调用送入一个值,参数为方法体持有它。
再读一遍 int 运行。第一次调用把 n 设为 9 并写出 9。第二次调用把 n 设为 4 并写出 4。名字 n 在头标里声明一次,写作 int n。每次调用给它该次经过的新值。把带引号的词传入 show,例如 show("nine");,在本形状上与 int 不匹配 — build 写出错误。把裸数字传入 greet,例如 greet(3);,与 string 不匹配 — build 再次写出错误。让实参类型与参数类型匹配。
常见混用是把参数名当文字写出:Console.WriteLine("name");。那写出字母 n-a-m-e。它不写出 lena。当你想让实参的字母出现在屏幕上时,保持 Console.WriteLine("hi " + name),name 周围不加引号。另一种混用是在 Main 里声明参数,而不是在方法头标里。带类型的名字属于 greet(...) 或 show(...) 内部,不属于本页 Main 的括号。一旦头标要求 string name,来自 ring 页的空 () 就不够了。
void 仍表示调用不会交回任何东西。你可以在方法括号里放 string name 或 int n,在调用里传入匹配的值,并从方法体写出该值。两次调用带两个实参,不必复制方法就能写出两行不同内容。下一页是 return:方法把值交回 Main,而不是只在方法体里写出。
屏幕持有实参
你保留的文件在 Main 调用 greet("lena"); 时写出 hi lena。写出行里的名字 name 周围没有引号。给 name 加引号写出的是字母,不是实参。调用上的空 () 与要求 string name 的头标不匹配。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部