本教程介绍 C# 。 编写第一个 C# 程序,并查看编译和运行代码的结果。 它包含以“Hello World”程序开头的一系列课程。 这些课程介绍了 C# 语言的基础知识。
在本教程中,你将:
- 使用 C# 开发环境启动 GitHub Codespace。
- 创建第一个 C# 应用。
- 创建和使用变量来存储文本数据。
- 对文本数据使用 .NET API。
先决条件
必须具有以下选项之一:
- 使用 GitHub Codespaces 需要一个 GitHub 帐户。 如果还没有帐户,可以在 GitHub.com 创建免费帐户。
- 安装了以下工具的计算机:
打开 Codespaces
若要使用教程环境启动 GitHub Codespace,请打开 教程 codespace 存储库的浏览器窗口。 选择绿色 “代码 ”按钮和 “代码空间 ”选项卡。然后选择该 + 符号以使用此环境创建新的 Codespace。
运行第一个程序
在代码空间加载时,在名为 hello-world.cs 的教程文件夹中创建新文件。
打开新文件。
键入或将以下代码复制到 hello-world.cs:
Console.WriteLine("Hello, World!");在集成终端窗口中,将 教程 文件夹设为当前文件夹,并运行程序:
cd tutorials dotnet hello-world.cs
运行了第一个 C# 程序。 这是一个简单的程序,用于打印消息“Hello World!”它使用 Console.WriteLine 该方法打印该消息。
Console 是表示控制台窗口的类型。
WriteLine 是 Console 类型中的一种方法,该方法将文本行打印到文本控制台。
让我们继续前进,探索更多。 本课程的其余部分将探讨如何使用类型 string ,该类型表示 C# 中的文本。 与类型 Console 一样,该 string 类型具有方法。 这些 string 方法适用于文本。
声明和使用变量
你的第一个程序在屏幕上打印 string “Hello World!” 。
小窍门
在探索 C#(或任何编程语言)的过程中,可能会在编写代码时犯错。
编译器会找到这些错误并将其报告给你。 当输出包含错误消息时,请仔细查看示例代码和文件中的代码 .cs 以查看要修复的内容。 该练习有助于学习 C# 代码的结构。 你还可以要求科皮洛特找出差异或发现错误。
你的第一个程序仅限于打印一条消息。 可以使用 变量编写更有用的程序。 变量是可用于运行具有不同值的相同代码的符号。 我们来试一试!
从以下代码开始:
string aFriend = "Bill"; Console.WriteLine(aFriend);第一行声明变量,
aFriend并为其赋值“Bill”。 第二行打印名称。可以将不同的值分配给声明的任何变量。 你可以将这个名称改成你一个朋友的名字。 在添加的代码后面添加这两行。 请确保保留变量及其初始赋值声明
aFriend。重要
请勿删除
aFriend的声明。在上述代码的末尾添加以下代码:
aFriend = "Maira"; Console.WriteLine(aFriend);请注意,同一行代码根据变量中
aFriend存储的值打印两条不同的消息。 你可能会注意到最后两条消息中缺少“Hello”一词。 现在我们来解决此问题。修改打印消息的代码行如下:
Console.WriteLine("Hello " + aFriend);再次运行应用,方法是使用
dotnet hello-world.cs以查看结果。你一直在使用
+将字符串从变量和常量字符串构建出来。 有更好的方法。 可以在{和}字符之间放置一个变量,以指示 C# 将该文本替换为变量的值。 此过程称为 字符串内插。如果在字符串的左引号前添加一个
$,则可以在大括号之间的字符串中包含变量,例如aFriend。 试一试:Console.WriteLine($"Hello {aFriend}");再次运行应用,方法是使用
dotnet hello-world.cs以查看结果。 消息应为“Hello Maira”,而不是“Hello {aFriend}”。
使用字符串
上次编辑是你第一次了解如何使用字符串。 让我们来了解一下。
你可以在大括号之间使用多个变量,而不仅限于单个变量。
尝试应用底部的以下代码:
string firstFriend = "Maria"; string secondFriend = "Sage"; Console.WriteLine($"My friends are {firstFriend} and {secondFriend}");字符串不仅仅是字母集合。 可以使用
Length查找字符串的长度。Length是字符串 的属性 ,它返回该字符串中的字符数。在应用底部添加以下代码:
Console.WriteLine($"The name {firstFriend} has {firstFriend.Length} letters."); Console.WriteLine($"The name {secondFriend} has {secondFriend.Length} letters.");
小窍门
现在是自己探索的好时机。 你已了解到 Console.WriteLine() 会将文本输出到屏幕。 你了解了如何声明变量并连接字符串。 尝试在代码中进行实验。 编辑器具有一个名为IntelliSense的功能,可以为您提供可执行操作的建议。 在.中的d之后键入一个firstFriend。 可以看到可用于的属性和方法的建议列表。
一直在使用方法Console.WriteLine 打印消息。 方法是执行某些动作的代码块。 它有一个名称,因此你可以访问它。
从字符串中删除空格
假设您的字符串中有您不想显示的前导或尾随空格。 你想要 去除 字符串两端的空格。 该Trim方法与相关方法TrimStart和TrimEnd一起负责完成该任务。 可以使用这些方法删除前导空格和尾随空格。
请尝试以下代码:
string greeting = " Hello World! "; Console.WriteLine($"[{greeting}]"); string trimmedGreeting = greeting.TrimStart(); Console.WriteLine($"[{trimmedGreeting}]"); trimmedGreeting = greeting.TrimEnd(); Console.WriteLine($"[{trimmedGreeting}]"); trimmedGreeting = greeting.Trim(); Console.WriteLine($"[{trimmedGreeting}]");
方括号[和]有助于你直观地理解Trim、TrimStart和TrimEnd方法的作用。 括号显示空格开始和结束的位置。
此示例强化了使用字符串的几个重要概念。 处理字符串的方法返回新的字符串对象,而不是在原地进行修改。 可以看到,每次调用任何 Trim 方法都会返回一个新字符串,但不会更改原始消息。
在字符串中搜索和替换文本
可以使用其他方法处理字符串。 例如,可以在编辑器或字处理器中使用搜索和替换命令。 该方法 Replace 在字符串中执行类似操作。 它搜索子字符串并将其替换为不同的文本。 该方法 Replace 采用两 个参数。 这些参数是括号之间的字符串。 第一个字符串是要搜索的文本。 第二个字符串是用于替换的文本。 试试吧。
添加此代码。 当你在
.Re变量后面开始键入sayHello时,键入它以查看提示:string sayHello = "Hello World!"; Console.WriteLine(sayHello); sayHello = sayHello.Replace("Hello", "Greetings"); Console.WriteLine(sayHello);另外两个有用的方法使字符串全部大写或全部小写。 请尝试以下代码。
在你开始键入 时,键入它以查看
ToIntelliSense 如何提供提示:Console.WriteLine(sayHello.ToUpper()); Console.WriteLine(sayHello.ToLower());搜索和替换作的另一部分是查找字符串中的文本。 可以使用该方法 Contains 进行搜索。 它会告诉你一个字符串是否包含某个子字符串。
请尝试以下代码来浏览 Contains:
string songLyrics = "You say goodbye, and I say hello"; Console.WriteLine(songLyrics.Contains("goodbye")); Console.WriteLine(songLyrics.Contains("greetings"));该方法 Contains 返回一个 布尔 值,该值指示是否找到要搜索的字符串。 布尔值存储或
true两种值。 当显示为文本输出时,它们将分别大写:True和False。 后续的课程会讲解更多关于布尔值的内容。
挑战
两种类似的方法,StartsWith 和 EndsWith,也用于在字符串中搜索子字符串。 这些方法在字符串的开头或末尾查找子字符串。 尝试修改上一个示例以使用 StartsWith , EndsWith 而不是 Contains。 搜索字符串开头是否有“You”或“goodbye”。 在字符串末尾搜索“hello”或“goodbye”。
注释
在测试字符串末尾的文本时,请注意标点符号。 如果字符串以句点结尾,必须检查是否有以句点结尾的字符串。
你应该对于以"You"开始并以"hello"结尾的情况使用true,而对于以“再见”开始或结尾的情况使用false。
你是否想出了类似于以下代码的内容(展开以查看答案):
string songLyrics = "You say goodbye, and I say hello";
Console.WriteLine(songLyrics.StartsWith("You"));
Console.WriteLine(songLyrics.StartsWith("goodbye"));
Console.WriteLine(songLyrics.EndsWith("hello"));
Console.WriteLine(songLyrics.EndsWith("goodbye"));
若要阅读更多关于string 类型的信息,请参阅:
清理资源
GitHub 会在 30 天不活动后自动删除 Codespace。 如果打算探索本系列中的更多教程,您可以保留 Codespace 配置。 如果已准备好访问 .NET 站点 来下载 .NET SDK,则可以删除 Codespace。 若要删除 Codespace,请打开浏览器窗口并导航到 Codespaces。 应该会在窗口中看到代码空间的列表。 在学习教程代码空间的条目中选择三个点(...),然后选择“delete”。