代码片段及其使用方法

代码片段是可添加到代码文件的小块可重用代码。 代码片段通常包含常用代码块,例如 Try...FinallyIf...Else 块。 还可以使用代码片段来添加整个类或方法。

代码片段具有一个用于选择代码片段的标题,还可以具有可键入以插入代码片段的快捷方式名称。 代码片段还可以包含充当占位符的替换参数。 代码片段可用于多种语言,包括 C#、C++ 和 Visual Basic 等。

扩展代码片段和外侧代码片段

可以将两种代码片段添加到代码中:

  • 在指定的插入点处添加扩展片段。
  • 在选定的代码周围添加外侧代码片段,并且仅适用于 C# 和 C++。

查找可用的代码片段

若要查看某种语言的可用代码片段,请从菜单栏中选择“工具”>“代码片段管理器”,或按 Ctrl+KB,然后从下拉菜单中选择所需的语言。

“代码片段管理器”对话框的屏幕截图。

若要创建和导入自己的片段,使其显示在片段列表中,请参阅演练:在 Visual Studio 中创建代码片段

向代码文件添加代码片段

若要向代码文件添加代码片段,请执行以下操作:

  1. 在代码编辑器中,放置游标或选择添加代码片段的 C# 或 C++ 代码。

  2. 请执行以下一项操作:

    • 在 Visual Studio 菜单栏上,选择“编辑”>“IntelliSense”>“插入片段”或“编辑”>“IntelliSense”>“外侧代码”。
    • 右键单击,然后从关联菜单中选择“片段”>“插入片段”或“片段”>“外侧代码”。
    • 在键盘上,对于扩展片段按 Ctrl+KX,或者对于外侧代码片段按 Ctrl+KS
  3. 双击下拉列表中所需的片段,或键入片段快捷方式,然后按 TabEnter

添加扩展片段

例如,C# 扩展片段 tryf 会添加以下 Try...Finally 块:

try
{

}
finally
{

}

若要添加此扩展片段,请执行以下操作:

  1. 在代码编辑器中,将游标放在要添加片段的位置。
  2. 右键单击并选择右键单击关联菜单中的“插入片段”,或者使用菜单栏或键盘命令。
  3. 打开 Visual C# 文件夹,然后在下拉列表中双击 tryf,或者选择 tryf,然后按 TabEnter

提示

还可以将游标置于插入点,键入 tryf,然后按 Tab 两次。

添加外侧代码片段

在下面的 C++ 片段示例中,快捷方式 if 可用作插入片段或外侧代码片段。 如果选择代码行 return FALSE;,然后选择“外侧代码”>“if”,即可让片段将围绕该行扩展:

if (true)
{
    return FALSE;
}

代码片段替换参数

片段可以包含替换参数,这些替换参数是占位符,必须进行替换来适应你编写的代码。 在上面的示例中,true 是替换参数,应将其替换为适当的条件。 对片段中该替换参数的每个实例重复替换。

例如,Visual Basic 有一个定义属性的代码片段。 要插入代码片段,请:

  1. 在 Visual Basic 代码文件中的右键单击上下文菜单中,选择“代码片段”>“插入代码片”
  2. 选择“代码模式”>“属性、过程和事件”>“定义属性”

用于定义属性的代码片段菜单的屏幕截图。

插入以下代码:

Private newPropertyValue As String
Public Property NewProperty() As String
    Get
        Return newPropertyValue
    End Get
    Set(ByVal value As String)
        newPropertyValue = value
    End Set
End Property

如果将 newPropertyValue 更改为 m_property,则 newPropertyValue 的每个实例皆会更改。 如果在属性声明中将 String 更改为 Int,则 Set 方法中的值也会更改为 Int

有关使用代码片段的最佳做法

代码片段中的代码仅显示执行某些操作的最基本方法。 对于大多数应用程序,必须修改代码,使其适合应用程序。

异常处理

通常,代码片段 Try...Catch 块会捕获并重新引发所有异常,但这可能是项目的正确选择。 对于每个异常,可通过几种方法进行响应。 相关示例,请参阅如何:使用 try/catch 处理异常 (C#)Try...Catch...Finally 语句 (Visual Basic)

文件位置

当根据应用程序调整文件位置时,请务必考虑以下因素。

  • 查找可访问的位置。 用户可能无权访问计算机的 Program Files 文件夹,因此可能无法将用户文件与应用程序文件一起存储。

  • 查找一个安全位置。 将文件存储在根文件夹(如 C:\)中并不安全。 对于应用程序数据,最好使用 Application Data 文件夹。 对于个人用户数据,应用程序可在每个用户的 Documents 文件夹中创建文件。

  • 使用有效的文件名。 可使用 OpenFileDialogSaveFileDialog 控件降低使用无效文件名的可能性。

  • 请注意,在代码可以操作文件之前,用户选择的文件可能会被删除。 此外,用户可能没有写入该文件的权限。

安全性

片段的安全性取决于在源代码中使用它的位置,以及位于代码中后如何对其进行修改。 以下列表包含一些需要考虑的方面:

  • 文件和数据库访问
  • 代码访问安全性
  • 保护事件日志和注册表等资源
  • 存储机密
  • 验证输入
  • 将数据传递到脚本编写技术

有关详细信息,请参阅保护应用程序

下载的代码片段

Visual Studio 安装的代码片段本身并不是安全隐患。 但它们会在应用程序中带来安全性风险。 从互联网上下载的片段应该像其他下载的内容一样格外小心处理。 仅从信任的站点下载代码片段,并使用最新的防病毒软件。

在 Visual Studio 的记事本或 XML 编辑器中打开所有已下载的代码片段文件,并在安装前仔细检查。 请注意下列问题:

  • 执行后可能会损坏系统的片段代码。 在运行前请仔细阅读源代码。

  • 片段文件中的 HelpURL 块,包含执行恶意脚本文件或显示冒犯性网站的 URL。

  • 包含引用的片段,以静默方式添加到项目中,并且可以从系统的任何位置加载。 可以从下载片段的同一位置下载这些引用。 然后,片段可以调用引用中执行恶意代码的方法。 若要检测此类引用,请查看片段文件的 ImportsReferences 块。