2016-06-23 17 views
1

私は大規模な.netソリューションを持っており、そこには多くのプロジェクトがあります。vb.net CreateObject対新規参照を使用した直接参照

Dim objSomething As Project.Class1 = Nothing 
objSomething = CreateObject("Project.Class1") 
... 

それとも単に: から別のプロジェクトを参照するとき、私の質問は、ですが、それはこのやる方が良いです。また

Dim objSomething As New Project.Class1() 
... 

を、他の上の1つのパフォーマンスヒットはありますか? ありがとうございます

+2

COMを使用して.NETプログラムから.NETオブジェクトを作成することは、決して良い考えではありません。 –

+0

このプロジェクトは長い時間前(VB6)に作成され、.NETに移行されました。私はこれが残されていると思うし、それらのすべての "CreateObject()"を直接参照を使用して更新する価値があるかどうかを判断しようとしています。 – Losbear

+0

@Losbearコードを変更したり、パフォーマンスの問題を修正したりして、それらを更新します。緊急の必要がある場合を除き、全面的な暴行はおそらく必要ありません。 –

答えて

1

Classが純粋なCOMオブジェクトの場合は、両方の方法で測定して測定する必要がありますが、パフォーマンスに大きな違いはありません。

objSomethingはどちらの場合もProject.Class1とタイプされているので、それ以外の違いはありません。そのあとのすべてがアーリーバインドです。

Project.Class1がCOM呼び出し可能な.NETオブジェクトの場合は、パフォーマンスに影響を与えるCOM相互運用層をバイパスするため、常にNewを使用する必要があります。 COM相互運用層を介して.NETクラスを作成することには意味がありません。

+0

合意 - 私は "CreateObject"にオーバーヘッドがあると思っていました。私はそれがリフレクションと同様にライブラリをロードするどこかを読んだと思いました(またはリフレクションを使用していますか?) 。私はそれが他のものを積み重ねるのにかかる差異を測定するでしょうが、私は何も心配していないかどうかを知りたがっています:) – Losbear

関連する問題