【发布时间】:2015-04-12 11:46:51
【问题描述】:
我目前正在开发一个由多个类组成的项目(控制台应用程序)。这些类都不包含任何属性。它们只包含一些方法。
例子:
假设我有 2 个类,一个是具有 main 方法的 Program.cs。另一个类 Worker.cs 具有提供必要功能的所有方法。
Worker.cs 只有一些方法,没有别的。
目前,在主函数中,我使用类名调用方法:
Worker.method1();
Worker.method2(param1, param2);
我的问题是: 我应该创建一个类的对象并调用它吗?还是应该调用类本身的方法?
使用静态类而不是非静态类对性能有影响吗?
没有特定于我需要跟踪的对象的信息。
【问题讨论】:
-
如果worker实际上是程序的一个实体,你在不同的方法中使用了很多,我会创建一个类的实例。当您只使用此类的一种方法时,我更同意使用静态类。我认为,这一切都与课程在您的程序中所扮演的角色有关。
-
如果你的类是绝对无状态的并且你不需要更复杂的场景(比如依赖注入的无状态实例类),那么让这个类保持静态。如果您对性能考虑感兴趣,请阅读stackoverflow.com/questions/12279438/…。
-
在运行时根本不重要,CLR 没有“静态类”的概念。它是纯粹的 C# 语法糖。它只是帮助您避免添加实例成员并帮助客户端程序员创建类的实例。当你花足够的时间思考你的程序设计时,你总是会做对的。
标签: c# oop static non-static