Dan*_*sen 5 c# static-methods private
我继承了一些常规类的代码,其中包含一些私有静态方法.代码(伪代码)看起来像这样
public class Animal
{
private string typeOfAnimal;
public Animal(string typeOfAnimal)
{
this.typeOfAnimal = typeOfAnimal;
}
public void MakeSound()
{
var sound = Animal.GetSound(typeOfAnimal);
// Make use of sound here
}
private static string GetSound(string typeOfAnimal)
{
if(typeOfAnimal == "dog")
return "bark";
else if(typeOfAnimal == "cat")
return "mjau";
}
}
Run Code Online (Sandbox Code Playgroud)
与使GetSound成为常规实例方法相比,这样做有什么好处?
在静态方法中存在一些非常小的性能差异,我认为这实际上是SO人员利用的东西.此外,由于关键字的含义,使方法静态可以使您略微提高可读性.
我对此的看法通常是可读性.在这种情况下,有两个不同之处:实例与静态,公共与私有.两者本身都没有比另一种更有益,这些好处仅取决于预期用途.在您的情况下,它没有值是公共方法,并且不是该类型的公共API的一部分,因此您将其设置为私有,并且不希望改变实例状态,因此您将其设置为静态.
默认情况下,ReSharper会突出显示可以变为静态的方法.
| 归档时间: |
|
| 查看次数: |
6326 次 |
| 最近记录: |