gpt4 book ai didi

c# - Resharper 将我的私有(private)方法设为静态的建议是否是一个很好的建议?

转载 作者:太空狗 更新时间:2023-10-29 17:29:58 25 4
gpt4 key购买 nike

我最近注意到,当我创建在传递给它们的对象中设置一些字段的私有(private)方法时,Resharper 会提示该方法可以设为静态。

这是我可能使用的那种方法的一个大大简化的示例。

private void MakeStatusTheSame(MyClass mc, MySecondClass msc)
{
mc.Status = msc.Status;
}

当我得到这样的方法时,Resharper 提供了一个建议,可以将该方法设为静态。

我尽量避免将公共(public)方法设为静态,因为它们会严重破坏单元测试……但我不确定这同样适用于私有(private)方法。

Resharper 的建议是有效的最佳实践还是我应该将其关闭?

最佳答案

我认为这绝对是静态方法的主要候选者。它不会更改类的任何属性、字段等。

这是一个例子:

class MyClass
{
public static void MakeStatusTheSame(MyClass mc, MySecondClass msc)
{
mc.status = msc.status;
}

private void MakeStatusTheSame(MySecondClass msc)
{
this.status = msc.status;
}

private int status;
}

此外,您可以将其设为扩展方法(也可以是静态的):

public static class Extensions
{
public static MyClass MakeStatusTheSame(this MyClass mc, MySecondClass msc)
{
mc.status = msc.status
return mc; /* make the method chainable */
}
}

关于c# - Resharper 将我的私有(private)方法设为静态的建议是否是一个很好的建议?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1447601/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com