数组
string[] plants = { "leaf", "mint" }; 把两个词保存在一个名字下,Console.WriteLine(plants[0]) 会在屏幕上写出 leaf。屏幕只有一行。这一行上没有 mint,也没有第二行。请把 public 类名保持为 Pine。
一个名字装两个词
请打开 Pine 文件。类名仍是 Pine。这一课不会给类型改名。若还有 string plant = null,请删掉。删掉 plant.Length。若还有 int count,请连同 (int)、40.0、40.9、40 一起删掉。若还有 double weight,请删掉。若还有 bool ripe,请连同 true、false 删掉。删掉每一行 ReadLine。你要保留的文件里没有等待输入,没有 count、weight、ripe,也没有单独存着 null 的 plant。词只会通过「选槽位」的那行写出语句出现在屏幕上。
在 Main 里,存放行是 string[] plants = { "leaf", "mint" };。string[] 是类型词,方括号是类型的一部分,表示这个名字可以保存不止一个词。plants 是名字,以小写 p 开头。= 用来存放。花括号装着那些词,每个词在自己的引号里,词与词之间有一个逗号。leaf 是第一个词,mint 是第二个。分号结束这一行。这一行只存放,不写屏幕。存放不等于写出。到这一行结束,屏幕仍是空的。这两个词不是数字 0,也不是词 null。不会在屏幕外、第二个名字下等什么。两个词都在 plants 下面。
写进花括号的词就是槽位。两个带引号的词形成两个槽位。在你要保留的文件里不要发明第三个词。string[] plants = { "leaf", "mint", "stem" }; 会存三个词,允许存在,但不是你要保留的那份。string[] plants = { leaf, mint }; 会把 leaf、mint 当成别的名字,本文件里没有那些名字,build 会报错。string[] plants = { "leaf" "mint" }; 没有逗号,build 会报错。逗号用来分开两个词。string[] plants = { 40, 9 }; 要这个类型存整数,而你保留的文件里是 leaf 和 mint,不是数字,build 会报错。本课里带方括号的类型,存的是带引号的词。
写出语句只选一个槽位:Console.WriteLine(plants[0]);。名字后面的方括号里是一个数,这个数是 0。槽位 0 是第一个词,因为槽位从 0 数起,不是从 1。0 外面没有引号。没有点,也没有 Length。C# 先读 plants,再读 0,写出该槽位的词,然后结束这一行。在你保留的文件里,这个词是 leaf。名字里的字母 p、l、a、n、t、s 不会上屏。string、花括号、逗号、mint 都不会出现在这一行上。屏幕上只有词 leaf,一行。请保存文件。
你要保留的那份文件
请保持这种教学形状:类型词 string[],名字 plants,花括号里两个词——先 leaf 后 mint,各带引号,中间一个逗号;一行写出语句,且选槽位 0。没有 Length,也没有第二行写出。
using System;
public class Pine
{
public static void Main()
{
string[] plants = { "leaf", "mint" };
Console.WriteLine(plants[0]);
}
}
请从上往下读。using System; 准备短名字。public class Pine 给类型命名。public static void Main() 是运行时入口。存放行 string[] plants = { "leaf", "mint" }; 不写任何东西。Console.WriteLine(plants[0]); 写出 leaf 并结束行。屏幕一行,没有第二行。保留的文件里没有 int 行,也没有存 null 的行。
用 dotnet run 运行。程序会写出 leaf,不会等你打字。词在运行之前就已经在文件里了。若 dotnet run 会等待,说明文件里还有 ReadLine,请删掉它,只留 string[] plants = { "leaf", "mint" }; 和那一行写出。程序在写出语句之后结束。屏幕显示 leaf,一行。若屏幕是 mint,说明写出语句选了槽位 1,或花括号里第一个词是 mint。请看文件:你要保留的那份应是 leaf 在前,写出行上是 plants[0]。若屏幕是 plant,写出行在别的名字外面加了引号。若屏幕是字母 plants[0],写出行是 Console.WriteLine("plants[0]");。那些引号表示字面字母,不会写出槽位里存的词。若屏幕是 null,可能是 null 文件还在,或槽位是在花括号里没有词的情况下创建的。你要保留的文件在花括号里有 leaf 和 mint。若屏幕是 40、40.0 或 4,说明转换、数字或 Length 相关行还在,请删掉。若屏幕是 true 或 false,说明 ripe 还在文件里。若屏幕是空行而不是 leaf,说明存放行里有空引号。那不是你要保留的文件。屏幕不对时,不需要重装 .NET SDK。
屏幕显示 leaf 本身不能证明用了方括号。string plant = "leaf"; 也会写出 leaf,屏幕可能看起来一样,文件却不同。你要保留的文件里有 string[]、花括号、逗号,写出行上是 plants[0]。判断本课是否做对,请看类型上的方括号和数字 0,不要只看屏幕。
另一个词在槽位 1
第二个词在文件里,但保留的写出行不会写它。要看 mint,方括号里的数应是 1。槽位 1 是第二个词,因为槽位 0 是第一个。可以运行这份作对照,但不是你要保留的文件。
using System;
public class Pine
{
public static void Main()
{
string[] plants = { "leaf", "mint" };
Console.WriteLine(plants[1]);
}
}
运行 dotnet run。屏幕显示 mint,一行。这一行没有 leaf。存放行没变,只有方括号里的数变了。1 不表示「第一个词」,第一个词仍是 leaf,在槽位 0。看过 mint 后,请把写出改回 plants[0]。你要保留的文件写出的是 leaf。
📊 方括号里的数和屏幕
| 数 | 屏幕 |
|---|---|
0 |
leaf |
1 |
mint |
2 |
运行时报错 |
string plants = { "leaf", "mint" }; |
build 报错 |
请对照表格做一次运行,不要只看表。对 0:build 不报错,dotnet run 写出 leaf。对 1:build 不报错,dotnet run 写出 mint。对 2:build 不报错,运行报错,因为花括号里没有这个槽位。对类型词没有方括号的 string plants = { "leaf", "mint" };:build 报错,不要运行。每次检查后请恢复保留文件:string[]、花括号、先 leaf 后 mint、plants[0]。保留文件的屏幕是 leaf,一行。
名字必须在使用它的行之前就存在。若 Console.WriteLine(plants[0]); 写在存放行上面,build 会报错。请把存放行移到写出行上面。同一个名字不要第二次写 string[]。在 plants 已经存在之后,后面一行可以只换槽位里的词:plants[0] = "stem";。这一行只改槽位 0 的词,槽位 1 仍是 mint。允许,但不是你要保留的文件。你要保留的只有一行存放,顺序是 leaf 然后 mint。
string[] plants; 没有花括号和词,接着写出行,build 会报错。名字只是类型,还没有槽位里的词。请把花括号放在创建行上,像保留文件那样。string[] plants = { "leaf" }; 只存一个词,plants[0] 写出 leaf。plants[1] 是你没写的槽位,build 安静后运行会报错。单词文件不是你要保留的。少一个空格不会把类型粘坏:string[]plants 仍能存两个词,build 不报错。你要保留的文件在 string[] 后有空格。string [] plants 在 plants 前有空格也一样。plants[ 0 ] 括号里有空格仍写出 leaf。保留文件没有多余空格,但空格不是第二个值。
花括号不是圆括号。string[] plants = ( "leaf", "mint" ); 会让 build 报错。词在 { 和 } 里,不在 ( 和 ) 里。写出行也不是在数字外加圆括号的调用。Console.WriteLine(plants(0)); 会让 build 报错。数字在 [ 和 ] 里。名字仍是小写 p 的 plants。大写 P 的 string[] Plants 是另一个名字,可以存词,但不是保留文件里的名字。请改回小写 p。
最后一个词后面的逗号不会增加槽位。string[] plants = { "leaf", "mint", }; 仍存两个词,build 不报错。plants[0] 仍写出 leaf,plants[1] 仍写出 mint。没有第三个词。你要保留的文件在 mint 后没有逗号,多出来的逗号也不是第三个值。不必写 new。string[] plants = new string[] { "leaf", "mint" }; 也能存两个词,plants[0] 仍写出 leaf。保留文件不写 new。string[] plants = new string[2]; 造两个空槽,plants[0] 会写出 null,槽里没有字母。那不是你要保留的文件。leaf 和 mint 必须写在花括号里。
你没写到的槽位
两个词形成编号 0 和 1 的两个槽位。数 2 是第三个槽位,你没有写第三个词。第三份文件就是在问这个槽位。
using System;
public class Pine
{
public static void Main()
{
string[] plants = { "leaf", "mint" };
Console.WriteLine(plants[2]);
}
}
这是第三份文件,不是你要保留的。请 dotnet run。build 可以保持安静,因为行可以写在文件里。数 2 不会让 build 失败。程序不会写出 leaf、mint、2 或 null。运行会报错。不必记住报错原文。花括号里只有两个词,没有第三个可写。plants[-1] 不是取最后一个词的办法。build 安静,运行报错。与保留文件匹配的编号只有 0 和 1。若屏幕是 mint,方括号里是 1,第二个词仍在。看过报错后请恢复保留文件。
不持有任何槽位的名字是另一类失败,屏幕也不会显示词 null。string[] plants = null; 不存槽位,build 不报错。接着 Console.WriteLine(plants[0]); 会让运行报错,不会写出 null 或 leaf。写出行上的方括号要槽位,而这个名字没有槽位。那不是保留文件。你要保留的文件有花括号,里面是 leaf 和 mint。
现在你可以把一个名下的两个词存好,并写出第一个。string[] plants = { "leaf", "mint" }; 保存 leaf 和 mint。Console.WriteLine(plants[0]); 写出 leaf 并结束行。plants[1] 会写出 mint,但那不是保留文件。plants[2] 让 build 保持安静,却让运行报错。没有方括号的 string 名字不能接花括号。下一页会离开这些方括号,去看写在两个整数之间的记号——运算符。
屏幕上是第一个词
你要保留的文件写出 leaf。写出行上的名字是 plants,plants 不会上屏。方括号里的数是 0。mint 是第二个词,在屏幕仍显示 leaf 时留在文件里。你没写到的槽位编号不是保留文件。在 plants[0] 外加引号写出的是字母,不是槽位里的词。
🧠 测试您的知识
测试您的知识
通过这个互动测验挑战自己,看看你对这个主题的理解程度如何
📝 说明
- 仔细阅读每个问题
- 为每个问题选择最佳答案
- 您可以随时重新参加测验
- 您的进度将显示在顶部