2013-09-01 61 views
15

私はoMissingが行うrefとなるかを理解しないSystem.Reflection.Missing.Valueの機能は何ですか?

Object oMissing = System.Reflection.Missing.Value 
oDataDoc = wrdApp.Documents.Open(ref oName, ref oMissing, 
        ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
        ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
        ref oMissing, ref oMissing, ref oMissing, ref oMissing, 
        ref oMissing); 

下記のコードに遭遇しました。それは自動的に値などを取得するのだろうか?

+1

なぜ、この値は参照渡しですか? –

+0

@SargeBorsch誰が知っていますか?私はこれがいくつかの 'COM'のものだと思うし、' COM'のものは常に読みにくいものです。 –

+1

ええ、私はあなたに完全に同意します。 –

答えて

9

nullの値を表します。 nullは、あなたが以下のスクリーンショットで見ることができるようにするだけ、より多くの情報を追加するためにMissing.Value

に等しくないことに注意してください、Missing.Valuenullに等しいされておらず、実際にはMissingクラスオブジェクトの新しいインスタンスがある

enter image description here

+1

次にMissingと等しいもの。値 –

+6

この値を渡す場合、Word APIは、各パラメータに値が指定されていないことを処理します。 VB.NETでは、興味のない値を送るのを避けることができます。以前のC#はデフォルトパラメータをサポートするために使用されていません。したがって、代わりに_Missing.Value_が使用されています。 nullとは異なり、Missing.ValueはAPIが(そのクラスで定義されているように)そのパラメータのデフォルト値を取り、処理を続けることを可能にします。 – Prash

+0

Okkk thankx –

3

これはnullの値を表します。 MSDN

から

が欠落しているクラスの唯一のインスタンスを表します。

+1

Missing.Valueを使用する代わりにnullを渡す理由 私はそれの背後にあるロジックを理解していません –

+0

@MurtazaMunshi値がnullの場合、動作は 'Missing.Value'と異なる場合があります。 –

+0

値をNULLとして渡すと、パラメーターに値は指定されません。このフォーラムもチェックしてください: - http://forums.asp.net/t/1636505.aspx/1 –