将方法/属性设为静态的重构
此重构允许您将实例方法或属性转换为静态方法或属性。 所有调用、实现和重写都会自动更正。
如果转换的实例方法使用了实例成员,ReSharper 会帮助您添加表示 this 的必要参数以应用这些用法。 如果转换的实例属性使用了实例成员,则此重构不可用。
在下面的示例中,我们使用此重构将 信息 类的实例方法 合并 转换为静态方法。 重构后,实例属性 标识符 和 名称 的用法被应用到新参数 i1 上:
class Info
{
string Id { get; set; }
string Name { get; set; }
Info Merge(Info other)
{
return new Info
{
Id = Id + other.Id,
Name = Name + other.Name
};
}
void Test()
{
var i1 = new Info()
{ Id = "123", Name = "AA" };
var i2 = new Info()
{ Id = "456", Name = "BB" };
var merged = i1.Merge(i2);
}
}
class Info
{
string Id { get; set; }
string Name { get; set; }
static Info Merge(Info info, Info other)
{
return new Info
{
Id = info.Id + other.Id,
Name = info.Name + other.Name
};
}
void Test()
{
var i1 = new Info()
{ Id = "123", Name = "AA" };
var i2 = new Info()
{ Id = "456", Name = "BB" };
var merged = Merge(i1, i2);
}
}
将方法或属性设为静态
将光标放在编辑器中实例方法或属性的声明或用法处,或者在 文件结构窗口 窗口中选择它。
执行以下操作之一:
按 Control+Shift+R 然后选择 使静态化。
右键单击并从上下文菜单中选择 重构 | 使静态化。
从主菜单中选择 。
使静态化 对话框将打开。
如果方法使用了实例成员,建议选择选项 将 'this' 添加为 [type name] 的参数。 在这种情况下,ReSharper 会添加必要的参数以应用这些用法。 如果需要,您可以选择不添加参数,或者仅将参数应用于部分实例成员的用法。 在这些情况下,重构后您可能需要手动更正静态上下文中无效的实例用法。
要应用重构,请单击 下一步。
如果未发现冲突,ReSharper 将立即执行重构。 否则,它会提示您 解决冲突。

此功能在以下语言和技术中 受支持:
此处提供的说明和示例针对在 C# 中使用该功能。 有关其他语言的更多信息,请参阅 语言和框架 部分中的相应主题。
最后修改日期: 2025年 9月 27日