假设您有一些方法可以在非静态类中进行静态化。
例如:静态与非静态方法
private double power(double a, double b)
{
return (Math.Pow(a, b));
}
你看到从改变方法的签名为静态任何好处?在上面的例子:
private static double power(double a, double b)
{
return (Math.Pow(a, b));
}
即使有一些性能或记忆的增益,不会编译器做在编译时一个简单的优化?
编辑:我在寻找的是通过声明方法为静态的好处。我 知道,这是常见的做法。我想了解它背后的逻辑。
当然,这种方法只是一个例子来阐明我的意图。
@大家好,我知道这是发展年代的一个“古老”问题,但它今天仍然相关。下面有很多**优秀的**答案。需要您的特定场景的实际性能数字?编写一个快速的程序,调用该方法足够多的时间(在var start = DateTime.Now()和var end = DateTime.Now()之间),以便能够经历足够长的时间以进行比较。用`static`运行几次,没有`static`运行几次并比较差异。也许打开TaskManager并观察每个场景的内存使用情况。 – 2014-11-25 15:12:21
只是为了完整性,而不是比较两个`DateTime.Now()`之间的差异,请使用[`StopWatch`类](https://msdn.microsoft.com/zh-cn/library/system.diagnostics。秒表(v = vs.110)的.aspx)。 编辑 - 为什么?它比'DateTime.Now()`方式更准确,更易于使用。 – 2015-11-18 09:44:06