2013-09-01 31 views
15

ho incontrato un codice indicato di seguitoCosa fa System.Reflection.Missing.Value fare?

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); 

Non capisco cosa rif oMissing fare. Otterrà automaticamente i valori o qualcosa del genere?

+1

Wow, che diamine, perché questo valore viene passato per riferimento? –

+0

@SargeBorsch chi lo sa? Immagino che questo sia un po 'di COM, e roba di COM non è sempre molto leggibile. –

+1

Sì, sono assolutamente d'accordo con te. –

risposta

9

Rappresenta null valore. Si noti che null non è uguale a Missing.Value

Giusto per aggiungere ulteriori informazioni, come si può vedere nella schermata qui sotto, Missing.Value non è uguale a null, e in effetti è una nuova istanza di oggetto Missing classe

enter image description here

+1

quindi ciò che è uguale a mancante. valore –

+6

Se si passa questo valore, allora l'API di Word avrebbe trattato che nessun valore viene fornito per il rispettivo parametro. In VB.NET puoi evitare di inviare valori che non ti interessano; ma in precedenza C# non viene utilizzato per supportare i parametri predefiniti. Quindi come alternativa si sta utilizzando _Missing.Value_. A differenza di null, Missing.Value consente all'API di assumere il valore predefinito di tale parametro (come definito nella sua classe) e di continuare l'elaborazione. – Prash

+0

Okkk ha capito grazie –

3

Esso rappresenta il valore null.

Da MSDN

Rappresenta l'unica istanza della classe mancante.

+1

Perché non possiamo passare null invece di usare Missing.Value Non capisco la logica dietro di esso –

+0

@MurtazaMunshi Immagino che se il valore è nullo, il comportamento potrebbe essere diverso da "Missing.Value". –

+0

Se si passa il valore come null, non viene fornito alcun valore per i parametri. Controllare anche il forum: - http://forums.asp.net/t/1636505.aspx/1 –