2010-07-16 90 views
16

我搜索了these SO results並找不到與我的問題相關的任何內容。我懷疑這可能是重複的。使用Office PIA時System.Type.Missing或System.Reflection.Missing.Value?

我目前正在編寫.NET C#3.5中的Microsoft.Office.Interop.Excel PIA包裝器,並想知道在調用像打開給定工作簿的方法時最好使用什麼。

System.Type.Missing or Missing.Value

已經執行了一些谷歌搜索,並不能找到任何區別,只不過一個是從System命名空間(System.Type.Missing),其他(Missing.Value)來自命名空間爲System.Reflection

  1. 兩者之間的主要區別是什麼?
  2. 在哪種情況下最適合使用?
  3. 這是爲什麼呢?

似乎都被用來當你想一個參數的默認值傳遞給互操作程序集...

謝謝您的回答! =)

回答

17

它們是相同的。在Type的靜態初始化器中,字段Missing設置爲System.Reflection.Missing.Value

至於爲什麼有兩種方法獲得相同的價值:誰知道。很可能這是一個向後兼容性補餘,因爲Type.Missing鍵入爲object,而Missing.Value鍵入的是Missing

+0

你從哪裏發現它們實際上是相同的,更有趣的是,你在哪裏發現Type.Missing被設置爲Missing.Value?謝謝! =) – 2010-07-16 08:25:33

+1

有一個叫做Reflector的奇妙工具:-)這使您可以查看每個.NET程序集的(編譯)代碼。但您也可以嘗試使用ILDASM(SDK的一部分)並查看** Type **的**。cctor **。這是第一個聲明。 – Ruben 2010-07-16 08:37:19

+2

那麼只有接受你的回答! =)謝謝! =) – 2010-07-16 08:38:54

相關問題