ReSharper 2025.3 Help

后缀模板

ReSharper 选项:代码编辑 | 后缀模板

此 ReSharper 选项页面允许您配置 后缀模板

使用选项卡在特定语言的后缀模板之间切换,并使用复选框启用或禁用模板。 请注意,不同语言中的相同模板需要单独启用或禁用。

在页面底部,您可以找到以下配置选项:

代码补全

显示后缀模板

如果您希望在自动补全列表中禁用 后缀模板 ,请取消选中此复选框。

显示源模板

如果您希望在自动补全列表中禁用 源模板 ,请取消选中此复选框。

其他选项

在语句模板后添加大括号

如果选中此复选框,ReSharper 会在语句模板后添加大括号。 例如,ReSharper 会在模板 .if 应用于 myBool 后添加大括号:

if(myBool) { }

在 .var 模板中搜索匹配项

如果选中此复选框,ReSharper 会检查您为其引入变量的表达式在当前作用域中是否有更多的出现。 如果有多个出现,ReSharper 可以帮助您将它们全部替换为新引入变量的用法:

ReSharper:替换多个出现的实例

从模板调用形参信息

后缀模板列表

快捷键

注释

示例

.arg

用调用包裹表达式

Method(expr)

.await

等待 'Task' 类型的表达式

await expr

用 UE 类型转换包裹表达式

用类型转换包裹表达式

((SomeType) expr)

检查布尔表达式是否为 'false'

检查布尔表达式是否为 'false'

if (!expr)

.field

为表达式引入字段

_field = expr;

.for

使用索引遍历集合

for (var i = 0; i < xs.Length; i++)

遍历

遍历可枚举集合

foreach (var x in expr)

.forr

以索引反向遍历集合

for (var i = xs.Length-1; i >= 0; i--)

.if

检查布尔表达式是否为 'true'

if (expr)

.inject

引入类型的主构造函数参数

class Component(IDependency dependency)

.lock

用锁块包裹表达式

lock (expr)

.new

生成类型的实例化表达式

new SomeType()

.not

取反布尔表达式

!expr

检查表达式是否非空

检查表达式是否非空

if (expr != null)

检查表达式是否为空

检查表达式是否为空

if (expr == null)

用括号包裹当前表达式

用括号包裹当前表达式

(expr)

解析

将字符串解析为某种类型的值

int.Parse(expr)

为表达式引入属性

为表达式引入属性

Property = expr;

返回

从当前函数返回表达式

return expr;

选择

在编辑器中选择表达式

|selected + expression|

生成 switch 语句

生成 switch 语句

switch (expr)

抛出

抛出 'Exception' 类型的表达式

throw expr;

将当前表达式赋值给某个变量

将当前表达式赋值给某个变量

lvalue = expr;

尝试解析

将字符串解析为某种类型的值

int.TryParse(expr, out value)

检查表达式的类型

用 typeof() 表达式包裹类型用法

typeof(TExpr)

用 using 语句包裹资源

用 using 语句包裹资源

using (expr)

为表达式引入变量

为表达式引入变量

var x = expr;

.while

当布尔语句为 'true' 时迭代

while (expr)

从迭代器方法返回值

从迭代器方法返回值

yield return expr;

快捷键

注释

示例

检查布尔表达式是否为 'false'

检查布尔表达式是否为 'false'

if (!expr)

.forof

遍历可迭代对象

for (let x of expr)

.if

检查布尔表达式是否为 'true'

if (expr)

检查表达式是否非空

检查表达式是否非空

if (expr !== null)

检查表达式是否非未定义

检查表达式是否非未定义

if (expr !== undefined)

检查表达式是否为空

检查表达式是否为空

if (expr === null)

返回

从当前函数返回表达式

return expr;

检查表达式是否未定义

检查表达式是否未定义

if (expr === undefined)

为表达式引入变量

为表达式引入变量

var x = expr;

快捷键

注释

示例

检查布尔表达式是否为 'false'

检查布尔表达式是否为 'false'

if (!expr)

.forof

遍历可迭代对象

for (let x of expr)

.if

检查布尔表达式是否为 'true'

if (expr)

检查表达式的实例

检查表达式的实例

if (x instanceof Class)

检查表达式是否非空

检查表达式是否非空

if (expr !== null)

检查表达式是否非未定义

检查表达式是否非未定义

if (expr !== undefined)

检查表达式是否为空

检查表达式是否为空

if (expr === null)

返回

从当前函数返回表达式

return expr;

检查表达式的类型

检查表达式的类型

if (typeof x === 'string')

检查表达式是否未定义

检查表达式是否未定义

if (expr === undefined)

为表达式引入变量

为表达式引入变量

let x = expr;

快捷键

注释

示例

生成范围的迭代器

生成范围的迭代器

sort(range.begin(), range.end())

用 UE 类型转换包裹表达式

用 UE 类型转换包裹表达式

Cast<SomeType>(expr)

生成范围的迭代器

生成范围的迭代器

is_sorted(range.cbegin(), range.cend())

将表达式作为参数传递给 co_await

将表达式作为参数传递给 co_await

co_await expr

从当前协程返回表达式

从当前协程返回表达式

co_return expr;

将表达式作为参数传递给 co_yield

将表达式作为参数传递给 co_yield

co_yield expr

用 const_cast 包裹表达式

用 const_cast 包裹表达式

const_cast<SomeType &>(expr)

迭代直到布尔表达式变为 'false'

迭代直到布尔表达式为 'false'

do { } while (expr);

用 dynamic_cast 包裹表达式

用 dynamic_cast 包裹表达式

dynamic_cast<SomeType &>(expr)

检查布尔表达式是否为 'false'

检查布尔表达式是否为 'false'

if (!expr)

遍历

遍历范围

for (auto && x : range)

转发

转发函数参数

std::forward<Arg>(arg)

.if

检查布尔表达式是否为 'true'

if (expr)

构造对象并将其包装在 std::shared_ptr 中

构造对象并将其包装在 std::shared_ptr 中

std::make_shared<SomeType>()

构造对象并将其包装在 std::unique_ptr 中

构造对象并将其包装在 std::unique_ptr 中

std::make_unique<SomeType>()

.new

生成类型的实例化表达式

new SomeType()

用 reinterpret_cast 包裹表达式

用 reinterpret_cast 包裹表达式

reinterpret_cast<SomeType &>(expr)

返回

从当前函数返回表达式

return expr;

用 safe_cast 包裹表达式

用 safe_cast 包裹表达式(C++/CLI)

safe_cast<SomeType>(expr)

用 static_cast 包裹表达式

用 static_cast 包裹表达式

static_cast<SomeType>(expr)

生成 switch 语句

生成针对整数/枚举类型的 switch 语句

switch (expr)

为表达式引入变量

为表达式引入变量

auto x = expr;

.while

当布尔表达式为 'true' 时迭代

while (expr)

最后修改日期: 2025年 12月 8日