2012-05-07 106 views
2

問題(C#編譯器警告消息)時:警告CS0467使用 'Microsoft.Office.Interop.Word._Document.Close'

警告CS0467:方法的Microsoft.Office.Interop.Word「之間的歧義。 _Document.close(ref object,ref object,ref object)'和非方法'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close'。使用方法組。

(部分..)解決方案: Compile time warning when using 'Microsoft.Office.Interop.Word._Document.Close'

的困境: 如果我明確地轉換爲Microsoft.Office.Interop.Word._Document,ReSharper的警告我說,在 「類型轉換是多餘的」

問題: 這種警告信息是否有真正的解決方案,而不僅僅是拼湊而成的?

回答

9

只是不投,C#並不需要它:

Word._Application app = new Word.Application(); 
Word._Document doc = app.Documents.Add(...); 
doc.Close(...); // No ambiguity 
app.Quit(...); 
+0

nope。仍然收到警告。 –

+0

當我使用Word.Application和Word.Document時,得到了警告CS0467 - 兩者都沒有啓動_。只需將_添加爲您的解決方案即可解決警告。 –

3

那麼,如果你需要鑄造,以避免錯誤......演員!

Resharper具有(良好)通用規則,但有時它們不能應用。

您可以在這個特定情況下(「抑制檢查xxx與評論」),或...住(如果您可以/被允許),「隱藏」resharper警告消息。

編輯:好的,得到了​​與庫版本12.0.0.0

警告所以,你可以嘗試

_Document w = new Document(); 

並要避免C#和ReSharper的警告。

+0

Well..I'm做了很多的代碼重構,我買不起「隱藏」的任何消息:)如果我被允許,我會從一開始就直接壓制CS0467警告信息。 –

+0

可以給你多一點代碼(至少「使用」和有問題的代碼),版本的Microsoft.Office.Interop.Word庫和版本的Visual Studio,我不能在VS 2010上使用lib版本14.0.0.0重現 –

+0

Microsoft Office.Interop.Word 12.0.0.0版,Visual Studio 2010 SP1 Microsoft Office.Interop.Word w = ...; w.Close(...); //編譯器警告 –