2012-05-07 9 views
2

問題(C#コンパイラ警告メッセージ)を使用する場合:警告CS0467 'Microsoft.Office.Interop.Word._Document.Close'

警告CS0467:Microsoft.Office.Interop.Word」メソッドとの間の曖昧さを。 _Document.close(refオブジェクト、refオブジェクト、refオブジェクト) 'および非メソッド' 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

まだ警告を受けています。 –

+0

Word.ApplicationとWord.Documentを使用していたときに警告CS0467が表示されました。ソリューションとして_を追加するだけで、警告が解決されました。 –

3

エラーを避けるためにキャスティングが必要な場合は...キャスト!

Resharperには良いルールがありますが、適用できないことがあります。

この特定のケースでは、resharperの警告メッセージを非表示にすることができます(「検査xxxはコメントを表示しない」)。

EDIT:OK、LI​​Bバージョン12.0.0.0

との警告を得たので、あなたは

_Document w = new Document(); 

を試すことができますし、C#とReSharperの警告を避けるものとします。

+0

Well..I'mは、リファクタリングをたくさんやって、私は「非表示」に任意のメッセージを余裕がない:) I場合私はCS0467警告メッセージを最初から直接抑制します。 –

+0

Visual Studioの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(...); //コンパイラの警告 –