在非静态类中查看某人的代码时,我注意到只有私有静态方法。所以那些在内部使用。
interface IDogInterface
{
void Bark(bool isBarking);
}
public class GoldenRevier : IDogInterface
{
public void Bark(bool isBarking)
{
//Implementation...
SomeMethod();
SomeOtherMethod();
AnotherMethod();
}
private static void SomeMethod();
private static void SomeOtherMethod();
private static void AnotherMethod();
}
注意:没有静态属性,没有getter或setter,只有您在上面代码中看到的内容。
为什么要将这些内部方法设为静态?我认为这样做没有任何好处。
我在上面的代码中看到错误的逻辑......我错过了什么吗?
修改
代码编辑以突出显示已接受的答案含义。
public class GoldenRevier : IDogInterface
{
private Bark _bark = new Bark();
public void Bark(bool isBarking)
{
if(isBarking)
{
_bark.SetLoudness(5);
_bark.Start();
}
else
{
JustChilling();
}
}
private static void JustChilling()
{
Console.Write("No barking today, just chilling!");
}
}
答案 0 :(得分:3)
您将static
个方法设为私有,以便将其可见性限制为包含的类。这是一个常见的情况,因为这是您使用该方法的唯一地方。此外,如果方法永远不会使用任何对象状态,那么没有理由不使用它static
。
答案 1 :(得分:2)
它的编码风格。如果某个方法不使用该类的任何属性,则可以将其设为static
。如果它只在该类中使用,则可以使其private
。因此,如果他们不使用类的属性并且不能在其他地方重用,则可以使它们private static
。你可以在没有静电的情况下离开它们。
所以它是一个样式问题 - 你是否强迫方法是静态的,如果它们可以,并且看不到你制作em private static
的可重用性。
对于可读性/代码概述:它告诉一个随意的读者/评论者:在这个类之外的这个方法上没有依赖关系(并且没有使用任何类属性。
可能有助于保持内部方法更清晰,更短(干净的代码),适合DRY和使用说话名称可以简化可读性。