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 に答える