繁体   English   中英

为什么visual studio中的extract方法命令会创建静态方法?

[英]Why does the extract method command in visual studio create static methods?

为什么默认情况下Visual Studio在重构代码和选择提取方法时会创建一个私有静态方法?

如果我正在重构一个非静态类,并且该方法只在类中可见,为什么它是静态的?

通过在非静态类中调用私有静态方法与非静态类中的非静态方法相比,是否有一些性能优势?

是否可读性只是简单地表明该方法不依赖于类的任何成员变量?

为什么默认情况下Visual Studio在重构代码和选择提取方法时会创建一个私有静态方法?

仅当您的方法不访问任何成员变量/方法/属性时,它才会执行此操作。 这很好,因为它基本上是基于最少假设的原则运行的:因为您不访问特定于实例的数据,所以也可以使该方法保持static

通过在非静态类中调用私有静态方法与非静态类中的非静态方法相比,是否有一些性能优势?

从理论上讲,可能会有但我对此表示怀疑。 但是,使该方法静态清楚地表明它不会访问或修改实例数据,我发现这是一个有用的提示。

创建静态方法可能被视为性能增强,因为没有“this”指针作为变量传递。 我使用ReSharper并且它总是建议在没有引用类变量的情况下将方法转换为静态。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM