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

Cri*_*ade 23 c# refactoring visual-studio

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

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

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

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

Kon*_*lph 31

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

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

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

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