2012-05-07 4 views
2

Проблема (компилятор С # предупреждающее сообщение):Предупреждение 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

нет. все еще получая предупреждения. –

+0

Получил предупреждение CS0467, когда я использовал Word.Application и Word.Document - оба без запуска _. Просто добавив _, поскольку ваши решения показывают, что это предупреждение. –

3

Ну, если вам нужно кастинг, чтобы избежать ошибок ... В ролях!

Решарпер имеет (хорошие) общие правила, но иногда их нельзя применять.

Вы можете «скрыть» предупреждающее сообщение в этом конкретном случае («Подавить проверку xxx с комментарием») или ... жить с (если вы можете/разрешены).

EDIT: хорошо, получил предупреждение с Lib версии 12.0.0.0

Таким образом, вы можете попробовать

_Document w = new Document(); 

и вы должны избегать C# и предупреждение ReSharper.

+0

Well..I'm делать много рефакторинга кода, и я не могу позволить себе «скрыть» любое сообщение :) Если я было разрешено, я бы подавил непосредственно сообщение предупреждения CS0467 с самого начала. –

+0

вы могли бы дать немного больше кода (по крайней мере, «usings» и проблемный код), версия Microsoft.Office.Interop.Word lib и версия 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 (...); // предупреждение компилятора –

Смежные вопросы