在 Visual Studio 中代码编辑器的 10 分钟演示中,我们将通过向文件添加代码,了解 Visual Studio 如何简化编写、导航和理解 C# 代码的一些方法。
如果尚未安装 Visual Studio,请转到 Visual Studio 下载 页免费安装。
本文假定你已熟悉 C# 。 如果没有,建议先查看一个教程,例如 C# 入门和 Visual Studio 中的 ASP.NET Core 。
小窍门
若要按照本文进行操作,请确保在 Visual Studio 中选择了 C# 设置。 有关选择集成开发环境(IDE)的设置的信息,请参阅 “选择环境设置”。
创建新的代码文件
首先创建一个新文件并向其添加一些代码。
打开 Visual Studio。 按 Esc 键或在开始窗口中单击 继续不输入代码,以打开开发环境。
在菜单栏上的“ 文件 ”菜单中,选择“ 新建>文件”,或按 Ctrl+N。
在“ 新建文件 ”对话框中的 “常规 ”类别下,选择 “Visual C# 类”,然后选择“ 打开”。
在编辑器中打开一个新文件,其中包含 C# 类的框架。 (请注意,我们不必创建完整的 Visual Studio 项目才能获得代码编辑器提供的一些优势;只需要一个代码文件!
打开 Visual Studio。 按 Esc,或在启动窗口中选择 “不使用代码继续”,以打开开发环境。
在菜单栏上的“ 文件 ”菜单中,选择“ 新建>文件”,或按 Ctrl+N。
在“ 新建文件 ”对话框中的 “常规 ”类别下,选择 “Visual C# 类”,然后选择“ 打开”。
在编辑器中打开一个新文件,其中包含 C# 类的框架。 无需创建完整的 Visual Studio 项目即可获得代码编辑器提供的一些优势,只需一个代码文件即可。
使用代码片段
Visual Studio 提供了有用的 代码片段 ,可用于快速轻松地生成常用代码块。 代码片段 可用于不同的编程语言,包括 C#、Visual Basic 和 C++。
让我们将 C# void Main 代码片段添加到文件中。
将光标放在文件中最后一个右大括号 } 上方,然后键入字符
svm(这代表static void Main—如果你不知道这意味着什么,不要担心太多)。此时会显示一个弹出对话框,其中包含有关
svm代码片段的信息。
按 Tab 两次插入代码片段。
你会看到
static void Main()方法签名已添加到文件中。 Main() 方法是 C# 应用程序的入口点。
可用的代码片段因不同的编程语言而异。 可以通过选择“编辑>IntelliSense>插入代码段”或按 Ctrl+、Ctrl+X,然后选择语言的文件夹来查看语言的可用代码片段。 对于 C#,列表如下所示:
将光标放在文件中最后一个右大括号
}上方,然后键入字符svm。svm代表static void Main—如果你还不知道这是什么意思,别担心。此时会显示一个弹出对话框,其中包含有关
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 完成模式、增加或减少行缩进或注释掉不想编译的代码。
Visual Studio 2022 中的文本编辑器工具栏的屏幕截图。
让我们注释掉一些代码。
将以下代码粘贴到
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+E、 Ctrl+C。
C# 注释字符
//将被添加到每个选定行的开头以注释代码。
折叠代码块
我们不想看到为其生成的空Class1,因此为了整理代码视图,让我们将其折叠。 在构造函数的第一行的边距中选择带有减号的小灰色框。 或者,如果希望使用键盘,请将光标置于构造函数代码中的任意位置,然后按 CtrlM、++M。
代码块仅折叠为第一行,后跟省略号(...)。 若要再次展开代码块,请单击现在具有加号的同一灰色框,或再次按 Ctrl+M、 Ctrl+M 。 此功能称为 大纲显示 ,在折叠长方法或整个类时特别有用。
代码块折叠为仅显示第一行,后面是省略号(...)。 若要再次展开代码块,请选择现在具有加号的同一灰色框,或再次按 Ctrl+M、 Ctrl+M 。 此功能称为 大纲显示 ,在折叠长方法或整个类时特别有用。
查看符号定义
使用 Visual Studio 编辑器可以轻松检查类型、方法等的定义。一种方法是导航到包含定义的文件,例如,选择 “转到定义 ”或按 F12 来引用符号的任何位置。 不需要将焦点移离你正在使用的文件的一种更快捷的方法是使用速览定义。 让我们看一下类型的定义 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的信息。
若要通过 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。 你会看到在赋值语句中对
unsortedWords的引用也会自动被重命名query。 在按 Enter 之前,请在“重命名”弹出框中选中“包括批注”复选框。
按 Enter,或在“重命名”对话框中选择“应用”。
您的代码中两处
someWords的内容已被重命名,代码注释中的文本someWords也进行了重命名。