生成格式化成员
.NET 中的任何类型都实现了 ToString() 方法,该方法返回该类型对象的字符串表示形式。 为了为我们的类型返回有意义的字符串,我们通常需要重写 ToString() 方法。
JetBrains Rider 允许您通过 生成格式设置成员 命令自动化此例行操作。
根据目标 C# 版本,JetBrains Rider 要么使用插值字符串,要么使用 String.Format()。 请注意,您始终可以使用上下文操作
Alt+Enter
在它们之间进行转换。
在下面的示例中,此命令用于基于 _radius 和 _center 字段生成 ToString() 方法。
生成前 | 生成后 |
|---|---|
class Circle
{
int _radius;
Point _center;
}
|
class Circle
{
int _radius;
Point _center;
public override string ToString()
{
return $"{nameof(_radius)}: {_radius}, {nameof(_center)}: {_center}";
}
}
|
为格式化成员生成重写
在编辑器中,将插入符号放置在类型名称处或类型内您希望插入格式化成员重写的位置。 如果插入点位于类型名称上,生成的代码将添加到类型声明的开头。
请按 Alt+Insert 或从主菜单中选择 。 或者,您可以按 Ctrl+Shift+A ,在弹出窗口中开始输入命令名称,然后在那里选择它。
在 生成 弹出窗口中,选择 格式化成员。
在出现的 生成 对话框中,选择要用于
ToString()重写的字段和/或自动属性。
如果您的类型中没有字段/属性,或者您未选择任何字段/属性,JetBrains Rider 将根据您的设置抛出新的
NotImplementedException(),返回默认值,或在生成的方法体中放置无法编译的代码。可选地,在对话框中使用以下控件:
ToString 已经存在 — 如果
ToString()的实现已存在,则会显示此选项,并允许您选择:如果方法已存在,则替换该方法。
将新生成的方法与现有方法并排放置。
完全跳过生成新方法。
使用 'nameof' — 如果目标 C# 版本高于 6.0,则会出现此选项。 如果选中此复选框,JetBrains Rider 将使用
nameof(symbol_name)定义符号的字符串表示形式,否则,它将自动计算字符串表示形式,例如,名为_radius的字段将呈现为“Radius”。
点击 确定 以完成向导。
您还可以通过在 生成 菜单中选择 Overriding Members 来生成重写,但在这种情况下,重写将返回 base.ToString()。