2009-05-14 6 views

答えて

4

オブジェクトを使用する場合、クライアントはIUnknownまたはIDispatchをサポートするものを渡す必要があります。つまり、パラメータはオブジェクトでなければなりません。 Variantを使用すると、クライアントは何かを渡すことができます。

+1

Variantを選択した場合、パラメータが0、Null、Empty、vbNullString、またはNothing ;-)の可能性も心配する必要があります。 –

+0

@Mike Spross:良いコメント。私があなたがそれを作るならば、クライアントがNothingで渡すことができることを観察しなければならないように、pedantaholicとして。 – MarkJ

+0

@ MarkJ:本当です。私は、何かが存在するかどうかを判断する際に、Variantにはさらに多様性があると伝えようとしていますが、Objectは何かが存在しないことを表現するための1つの方法しか定義していません。特に、割り当てられていないVariantがEmptyにデフォルト設定されているという事実は、IsNullでパラメータをチェックするが、IsEmptyでチェックするのを忘れたコードでは、混乱を招く可能性があります。私たちは、呼び出し元がNullを渡すことができるようにVariantプロパティを使用するいくつかのクラスを持っていますが、呼び出し元が明示的にプロパティをNULLにしなかったときに奇妙なことが起こるEmptyをチェックするようにはコード化されませんでした。 –

関連する問題