了解如何使用代码编辑器
在这个 10 分钟的 Visual Studio 代码编辑器简介中,我们会向文件添加代码,了解 Visual Studio 编写、导航和了解代码的简便方法。
提示
如果尚未安装 Visual Studio,请转到 Visual Studio 下载页免费安装。
如果尚未安装 Visual Studio,请转到 Visual Studio 下载页免费安装。
本文假定你已熟悉编程语言。 如果不熟悉,则建议首先查看其中一个编程快速入门,如使用 Python 或 C# 创建 Web 应用,或使用 Visual Basic 或 C++ 创建控制台应用。
提示
若要继续执行本文中的操作,请确保为 Visual Studio 选择了 C# 设置。 有关为集成开发环境 (IDE) 选择设置的信息,请参阅选择环境设置。
创建新代码文件
先创建一个新文件并向其添加一些代码。
打开 Visual Studio。 按 Esc 或单击“开始”窗口中的“继续但无需代码”以打开开发环境。
在菜单栏上的“文件”菜单中,选择“新建”>“文件”。
在“新建文件”对话框的“常规”类别中,选择“Visual C# 类”,然后选择“打开” 。
编辑器中将打开主干为 C# 类的新文件。 (请注意,我们无需创建完整的 Visual Studio 项目来获取代码编辑器提供的某些益处,仅需一个代码文件即可!)
打开 Visual Studio。 选择 Esc 键或选择“开始”窗口中的“继续但无需代码”以打开开发环境。
在菜单栏上的“文件”菜单中,选择“新建”>“文件”,或按 Ctrl+N 键。
在“新建文件”对话框的“常规”类别中,选择“C# 类”,然后选择“打开”。
编辑器中将打开主干为 C# 类的新文件。
使用 GitHub Copilot
GitHub Copilot 将充当 AI 结对程序员,可在你编写代码时直接在编辑器中实时提供自动完成样式的代码完成和上下文感知型多行代码建议。 GitHub Copilot 可将自然语言提示(包括注释和方法名称)转换为编码建议。 你可以直接在编辑器中查看并采纳 GitHub Copilot 的建议。
让我们使用 Copilot 生成代码建议:
- 将光标放在文件中最后一个右大括号 } 的正下方。
- 键入自然语言注释“
// Add a method to add two numbers
”,然后单击 Enter。 - GitHub Copilot 会为你生成代码建议。 建议的实现以灰色文本显示。
- 若要接受建议,请选择 Tab。
开始使用 Visual Studio 中的 GitHub Copilot。 请注意,它需要 Visual Studio 2022 17.5.5 或更高版本。
使用代码片段
Visual Studio 提供了实用的代码片段,可用于快速方便地生成常用代码块。 代码片段可用于不同编程语言,包括 C#、Visual Basic 和 C++。
我们将 C# void Main
代码片段添加到文件。
将光标停在文件中最后的结束括号 } 的上方,并键入字符
svm
。 (svm
代表static void Main
;Main() 方法是 C# 应用程序的入口点。)随即将出现一个弹出对话框,其中包含有关
svm
代码片段的信息。按 Tab 两次,插入代码片段。
你会看到
static void Main()
方法签名被添加到文件。
对于不同编程语言,可用的代码片段不同。 依次选择“编辑”>“IntelliSense”>“插入代码片段”,然后选择语言的文件夹,即可查看该语言的可用代码片段 。 对于 C#,该列表如下所示:
将光标停在文件中最后的结束括号
}
的上方,并键入字符svm
。随即将出现一个弹出对话框,其中包含有关
svm
代码片段的信息。选择 Tab 键两次,插入代码片段。
你会看到
static void Main()
方法签名被添加到文件。 Main() 方法是 C# 应用程序的入口点。
对于不同编程语言,可用的代码片段不同。 依次选择“编辑”>“IntelliSense”>“插入代码片段”,或选择 Ctrl+K、Ctrl+X 键,然后选择编程语言的文件夹,即可查看该语言的可用代码片段 。 对于 C#,代码片段列表如下所示:
该列表包含用于创建类、构造函数、for 循环、if 或 switch 语句等的代码片段。
为代码添加注释
工具栏是 Visual Studio 菜单栏下的一行按钮,有助于提高编码效率。 例如,可以切换 IntelliSense 完成模式(IntelliSense 是一种编码辅助工具,可显示匹配方法列表以及其他内容),增加或减少行缩进,或标注出不想编译的代码。 在本部分中,我们将标注出部分代码。
将以下代码粘贴到
Main()
方法主体中。// _words is a string array that we'll sort alphabetically string[] _words = { "the", "quick", "brown", "fox", "jumps" }; string[] morewords = { "over", "the", "lazy", "dog" }; IEnumerable<string> query = from word in _words orderby word.Length select word;
我们现在没有使用
morewords
变量,但稍后可能会用到,所以我们不想彻底删除它。 那我们就来为这些行加上注释。 选择整个morewords
定义直到结束分号,然后选择工具栏上的“为选定行添加注释”。 如果想要使用键盘,请按 Ctrl+K, Ctrl+C 。C# 注释字符
//
添加到了每个所选行的开始处,从而为代码添加注释。
文本编辑器工具栏是 Visual Studio 菜单栏下的一行按钮,有助于提高编码效率。 例如,可以切换到 IntelliSense 完成模式、增加或减少缩进,或者注释掉不想编译的代码。
让我们注释掉一些代码。
将以下代码粘贴到
Main()
方法主体中。// someWords is a string array. string[] someWords = { "the", "quick", "brown", "fox", "jumps" }; string[] moreWords = { "over", "the", "lazy", "dog" }; // Alphabetically sort the words. IEnumerable<string> query = from word in someWords orderby word select word;
我们现在没有使用
moreWords
变量,但稍后可能会用到,所以我们不想删除它。 那我们就来注释掉这些行。 选择整个moreWords
定义直到结束分号,然后选择文本编辑器工具栏上的“注释掉选定行”。 如果想要使用键盘,请按 Ctrl+K、Ctrl+C。C# 注释字符
//
添加到了每个所选行的开始处,从而为代码添加注释。如果要注释掉行,可以选择它们,然后选择文本编辑器工具栏上的“注释掉所选行”按钮。 如果想要使用键盘,请按 Ctrl+K、Ctrl+U。
折叠代码块
我们不想看到生成的 Class1
的空构造函数,所以为了让代码更整洁,我们将其折叠。 在构造函数第一行的边距中选择内部带有减号的小灰色框。 如果首选使用键盘,也可将光标置于构造函数代码中的任意位置,然后按 Ctrl+M、Ctrl+M 。
代码块折叠到第一行,后跟省略号 (...
)。 若要再次展开代码块,请单击现在带有加号的相同灰色框,或者再次按 Ctrl+M,Ctrl+M 。 此功能被称为大纲显示,在折叠长方法或整个类时特别有用。
我们不想看到生成的 Class1
的空构造函数,所以为了让代码更整洁,我们将其折叠。 在构造函数第一行的边距中选择内部带有减号的小灰色框。 如果首选使用键盘,也可将光标置于构造函数代码中的任意位置,然后选择 Ctrl+M、Ctrl+M 键。
代码块折叠到第一行,后跟省略号 (...
)。 若要再次展开代码块,请选择现在带有加号的相同灰色框,或者再次选择 Ctrl+M,Ctrl+M 。 此功能被称为大纲显示,在折叠长方法或整个类时特别有用。
查看符号定义
通过 Visual Studio 编辑器可轻松查看类型、方法等的定义。一种方法是导航到包含定义的文件,例如通过选择“转到定义”,转到引用符号的任何位置。 使用“速览定义”速度更快,不会干扰你处理文件。 我们来快速查看一下 string
类型的定义。
右键单击出现的任意
string
,然后选择内容菜单上的“速览定义”。 或者,按 Alt+F12 。此时会出现一个弹出窗口,其中包含
String
类的定义。 可在弹出窗口中滚动,甚至还可从速览的代码中查看另一类型的定义。选择弹出窗口右上方的“x”小框,关闭“速览定义”窗口。
通过 Visual Studio 编辑器,可轻松查看类型、方法或变量的定义。 一种方法是转到包含定义的任何文件,例如通过选择“转到定义”或选择“F12”键,转到引用符号的任何位置 。 使用“速览定义”速度更快,不会干扰你处理代码。
我们来快速查看一下 string
类型的定义。
右键单击出现的任意
string
,然后选择内容菜单上的“速览定义”。 或者,选择 Alt+F12 键 。此时会出现一个弹出窗口,其中包含
String
类的定义。 可在弹出窗口中滚动,甚至还可从速览的代码中查看另一类型的定义。选择弹出窗口右上方的“x”小框,关闭“速览定义”窗口。
使用 IntelliSense 完成单词
编写代码时,IntelliSense 是非常宝贵的资源。 它可显示某个类型的可用成员信息,或某个方法不同重载的参数详情。 还可用于完成单词,从而在输入大量字符后消除字符带来的歧义。 添加代码行,将有序字符串呈现到控制台窗口,这是程序输出的标准位置。
在
query
变量下,开始键入以下代码:foreach (string str in qu
IntelliSense 会显示有关
query
符号的“快速信息”。若要使用 IntelliSense 文字自动完成功能插入单词
query
的剩余部分,请按 Tab。完成后,代码块如以下代码所示。 你甚至可以通过输入
cw
,然后按 Tab 两次来生成Console.WriteLine
代码,再次练习使用代码片段。foreach (string str in query) { Console.WriteLine(str); }
编写代码时,IntelliSense 是非常宝贵的资源。 它可显示某个类型的可用成员信息,或某个方法不同重载的参数详情。 还可用于完成单词,从而在输入大量字符后消除字符带来的歧义。
添加代码行,将有序字符串呈现到控制台窗口,这是程序输出的标准位置。
在
query
变量下,开始键入以下代码:foreach (string str in qu
此时会看到一个 IntelliSense 弹出项,其中包含有关
query
符号的相关信息。若要使用 IntelliSense 文字自动完成插入单词
query
的剩余部分,请选择 Tab 键。完成后,代码块如以下代码所示。 你可以通过输入
cw
,然后选择 Tab 两次来生成Console.WriteLine
语句,从而进一步练习代码片段。foreach (string str in query) { Console.WriteLine(str); }
重构名称
没有谁能一次就得到正确的代码,代码中可能必须要更改的一项内容是变量或方法的名称。 我们来试试 Visual Studio 的重构功能,将 _words
变量重命名为 words
。
将光标置于
_words
变量的定义上,然后从右键菜单或上下文菜单中选择“重命名”,或按 Ctrl+R,Ctrl+R 。此时编辑器右上角会弹出一个“重命名”对话框。
输入所需名称“words”。 请注意,查询中对
words
的引用也会自动重命名。 在按 Enter 前,请在“重命名”弹出框中选中“包含注释”复选框 。按 Enter。
出现的两处
words
均被重命名,代码注释中对words
的引用也被重命名。
没有谁能一次就得到正确的代码,代码中可能必须要更改的一项内容是变量或方法的名称。 我们来试试 Visual Studio 的重构功能,将 someWords
变量重命名为 unsortedWords
。
将光标置于
someWords
变量的定义上,然后从右键菜单或上下文菜单中选择“重命名”,或选择 F2 键。此时编辑器右上角会出现一个“重命名”对话框。
输入所需名称“unsortedWords”。 你会看到查询中对
query
赋值语句中unsortedWords
的引用也会自动重命名。 请在“重命名”弹出框中选中“包含注释”复选框,然后选择 Enter 键。选择 Enter 键。
代码中出现的两处
someWords
均被重命名,代码注释中的文本someWords
也被重命名。