c# - 如果一个方法不访问 "this"对象属性或方法,我们是否应该始终将它声明为静态方法

标签 c# oop static

很多次我遇到过这样的场景,我们需要在类中定义一些辅助函数。下面是一个例子:

public class MyClass
{
    private void BeautifyOrValidate(MyRequest request)
    {
        //Beautify or validate request
    }
    public void DoOperation(MyRequest request)
    {
        BeautifyOrValidate(request);
        //Do actual operation
    }
}

在上面的示例中,“BeautifyOrValidate”可以设为静态。一个类中可以同时存在多个这样的函数。
我想知道我们是否应该始终对此类方法使用 static 关键字,或者对此有一些其他规则。

最佳答案

对于私有(private)成员来说,这无关紧要,将其设为静态是一个微小的优化。

对于公共(public)成员,基本规则是当它可以是静态的时,它就应该是。需要明确的是,BeautifyOrValidate(request)

中没有涉及任何 MyClass 实例

关于c# - 如果一个方法不访问 "this"对象属性或方法,我们是否应该始终将它声明为静态方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19952357/

相关文章:

C#: "Cannot create an instance of the static class"

java - 初学者java顺序递增设置变量并重置计数

java - Web应用程序中Java静态成员的范围

c# - 在 javascript 中使用 C# 变量

c# - 对象引用未设置为实例错误

Java - 具有泛型类型参数的重写方法,并在调用它时对其进行类型转换

perl - 我可以在 Perl 中创建类似 Java 的接口(interface)吗?

java - 不是静态java接口(interface)

c# - Json.Net 和 Monotouch 编译

c# - 在 asp.net MVC 中为网站提供更好的用户体验