C# 为什么VisualStudio中的extract method命令创建静态方法?

C# 为什么VisualStudio中的extract method命令创建静态方法?,c#,visual-studio,refactoring,C#,Visual Studio,Refactoring,为什么VisualStudio在重构代码并选择extract method时默认创建私有静态方法 如果我正在重构一个非静态类,而该方法仅在该类中可见,为什么它是静态的 与非静态类中的非静态方法相比,在非静态类中调用私有静态方法是否有一些性能优势 仅仅表明方法不依赖于类的任何成员变量是为了可读性吗 为什么VisualStudio在重构代码并选择extract method时默认创建私有静态方法 只有当您的方法不访问任何成员变量/方法/属性时,它才会这样做。这很好,因为它基本上是基于最少假设的原则运

为什么VisualStudio在重构代码并选择extract method时默认创建私有静态方法

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

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

仅仅表明方法不依赖于类的任何成员变量是为了可读性吗

为什么VisualStudio在重构代码并选择extract method时默认创建私有静态方法

只有当您的方法不访问任何成员变量/方法/属性时,它才会这样做。这很好,因为它基本上是基于最少假设的原则运行的:因为您不访问特定于实例的数据,所以最好将该方法设置为静态的

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


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

创建静态方法可能会被视为性能增强,因为没有“this”指针作为变量传递。我使用ReSharper,每当方法不引用类变量时,它总是建议将方法转换为静态