0

我为连接到 Oracle 和 SQL 数据库的应用程序开发了一个数据访问层。我在这里编写了一个与 Application Blocks 提供的类似的类:http: //www.sharpdeveloper.net/source/SqlHelper-Source-Code-cs.html

我不确定为什么链接中的方法是静态的。当我想执行 CRUD 操作时,我会创建一个类的实例,然后调用相应的函数。为什么方法是静态的?

VB.NET 不允许共享类(仅共享函数)。因此,我正在考虑使所有功能共享。在我这样做之前,我想了解为什么链接中的方法是静态的。

我研究过这个。例如,以下链接说明这些方法是静态的,但没有说明原因:http ://www.4guysfromrolla.com/articles/062503-1.aspx 。

4

2 回答 2

1

我想到了几个重要的原因。

  • 简单

运行该方法所需的一切都通过参数列表到达。开发人员不必遵循实例化实现的任何怪癖。

  • 速度。

根据下面的链接,静态方法调用比它们的实例化方法快大约 4-5 倍。

http://msdn.microsoft.com/en-us/library/ms973852.aspx

于 2012-11-19T19:16:04.083 回答
0

在 vb 中,模块的行为与 c# 中的静态类一样。当您只想要一个具有所有共享方法的辅助类型类时很有用。

作为一个非常普遍的规则,静态/共享方法应该更有效。因为您不需要实例化一个类来进行相同的调用。因此,您不会生成整个对象来执行您不需要完整对象来执行的操作。例如,一个简单的数学函数。

public shared function AddNumbers(number1 as integer, number2 as integer) as integer

与修改或访问对象数据的东西相比。

public function AccrueInterest() as integer

这可能是访问同一对象上的 interestRate 和 Balance 属性的东西。

于 2012-11-19T19:17:14.920 回答