在 Visual Studio 代码编辑器简介中,你将向文件添加代码并探索 Visual Studio 如何帮助编写、导航和理解代码。
Tip
如果您没有 Visual Studio,请前往 Visual Studio 下载 以免费安装。
如果尚未安装 Visual Studio,请转到 Visual Studio 下载 页免费安装。
本文假设你已熟悉编程语言。 如果没有,建议先查看其中一个编程快速入门,例如使用 Python 或 C#创建 Web 应用,或者使用 Visual Basic 或 C++创建控制台应用。
Prerequisites
- 配置了 C# 开发设置的 Visual Studio。 若要配置设置,请参阅 “选择环境设置”。
创建新的代码文件
创建新文件并向其添加一些代码。
打开 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。
让我们使用 Copilot Chat 以提示方式提交编码相关问题:
选择 IDE 右上角的 GitHub Copilot 徽章。
从下拉列表中选择 “打开聊天窗口 ”。
在聊天窗口中输入以下提示:
Generate sample code for a simple C# method to add two numbers.
Copilot Chat 生成示例代码以响应提示。
GitHub Copilot 由 AI 提供支持,因此可能会带来意外和错误。 有关详细信息,请参阅 GitHub Copilot 常见问题解答。
在 Visual Studio 中开始使用GitHub Copilot。
使用代码片段
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++、Ctrl+C。//
的 C# 注释字符将添加到每个选定行的开头,以注释掉代码。若要取消注释行,可以选择它们,然后选择“文本编辑器”工具栏上的“ 取消注释所选行 ”按钮,或选择 Ctrl+K、 Ctrl+U。
折叠代码块
我们不想看到为 生成的空 Class1
,因此为了让代码视图更加简洁,让我们将其折叠。 在构造函数第一行的边距中选择内部带有减号的小灰色框。 或者,如果希望使用键盘,请将光标放在构造函数代码中的任意位置,然后按 Ctrl+M,Ctrl+M。
代码块仅折叠为第一行,后跟省略号(...
)。 若要再次展开代码块,请单击现在包含加号的同一个灰色框,或者再次按 Ctrl+M,Ctrl+M。 此功能被称为大纲显示,在折叠长方法或整个类时特别有用。
如果不想看到为Class1
生成的空构造函数,可以将其折叠以简化代码视图。 选择构造函数第一行边距中的插入符号。 或者,如果希望使用键盘,请将光标放在构造函数代码中的任意位置,然后选择 ctrl +,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 是一种宝贵的资源。 它可以显示关于某个类型的可用成员的信息,或显示方法的不同重载的参数详细信息。 在键入足够的字符以消除歧义后,还可以使用 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 是一种宝贵的资源。 它可以显示关于某个类型的可用成员的信息,或显示方法的不同重载的参数详细信息。 在键入足够的字符以消除歧义后,还可以使用 IntelliSense 完成单词。
让我们添加一行代码,将有序字符串打印到控制台窗口,这是程序输出的标准位置。
在
query
变量下方,开始键入以下代码:foreach (string str in qu
你将看到 IntelliSense 弹出窗口显示,其中包含有关
query
符号的信息。如果使用具有 Copilot 订阅的 GitHub 帐户登录,则还会看到代码建议以灰色文本显示。
若要使用 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 前,请在“重命名”弹出框中选中“包含注释”复选框。Press Enter.
出现的两处
words
均被重命名,代码注释中对words
的引用也被重命名。
没有人能在第一次写对代码,而你可能需要修改的一件事就是变量或方法的名称。 让我们尝试使用 Visual Studio 的 重构 功能,将 someWords
变量重命名为 unsortedWords
。
将光标置于
someWords
变量的定义上,然后从右键单击或上下文菜单中选择 重命名,或选择 F2 键。编辑器右上角会显示 重命名 对话框。
输入所需名称“unsortedWords”。 你会看到查询中对
query
赋值语句中unsortedWords
的引用也会自动重命名。 请在“重命名”弹出框中选中“包含注释”复选框,然后选择 Enter 键。选择 Enter 键。
代码中出现的两处
someWords
均被重命名,代码注释中的文本someWords
也被重命名。