【问题标题】:Making Class methods instead of Instance Methods in VB.NET在 VB.NET 中创建类方法而不是实例方法
【发布时间】:2010-03-29 21:41:51
【问题描述】:
我不确定我的问题的标题有多清楚,但我试图在 Visual Basic 中创建类方法而不是实例方法,这样我就不必浪费内存和代码创建临时对象来执行方法不需要实例变量。
我不确定您是否可以在 VB 中执行此操作,但我知道您可以在 Objective-C 中通过在方法声明前使用“+”或“-”号来实现。而在 C++ 中(至少我认为,我不记得了)你将 static 关键字或 const 关键字放在函数前面。
如果可能的话,我将如何在 VB 中执行此操作?还是我应该只创建一组不是类成员的单独函数?
【问题讨论】:
标签:
vb.net
instance
class-design
【解决方案1】:
如果您希望在 VB.Net 中定义类方法,您只需将 Shared 修饰符添加到函数中
Class C1
Public Shared Function DoSomething() As String
' Insert code here
End Function
End Class
关于是否应该使用类方法而不是实例方法来避免分配。我认为您在这里使用了错误的推理模式。我会简单地从设计类开始,使其拥有最自然和直接的 API。然后在该过程之后,如果分析器显示小对象的分配存在问题,则更新 API 以解决此问题。
在不使用分析器的情况下出于性能原因做出 API 设计决策几乎肯定会导致浪费精力。