C#方法可以是静态的吗?
我们今天正在讨论这个问题,我有点蠢蠢欲动.想象一下,你有一个很长的方法,你可以重构几行.新方法可能从父方法中获取一些局部变量并返回一个值.这意味着它可能是静态的.
问题是:它应该是静态的吗?它不是设计或选择的静态,仅仅是因为它不引用任何实例值.
假设您在非静态类中有一些可以变为静态的方法.
例如:
private double power(double a, double b)
{
return (Math.Pow(a, b));
}
Run Code Online (Sandbox Code Playgroud)
您是否看到将方法签名更改为静态有什么好处?在上面的例子中:
private static double power(double a, double b)
{
return (Math.Pow(a, b));
}
Run Code Online (Sandbox Code Playgroud)
即使有一些性能或内存增益,编译器也不会在编译时进行简单的优化吗?
我发现有两种类型的方法称为静态方法和实例方法及其差异.但我仍然无法理解一个人的优势.
有时我觉得静态方法不是100%面向对象的.
这两者之间是否有任何性能差异.
有人可以帮忙吗?