警告 CS0467 使用“Microsoft.Office.Interop.Word._Document.Close”

本文关键字:Word Document Close Interop Office CS0467 使用 Microsoft 警告 | 更新日期: 2023-09-27 18:33:26

问题(C# 编译器警告消息):

警告 CS0467:方法"Microsoft.Office.Interop.Word._Document.close(ref 对象、ref 对象、ref 对象)"和非方法 'Microsoft.Office.Interop.Word.DocumentEvents2_Event.Close' 之间存在歧义。使用方法组。

(部分..)解决方案:使用"Microsoft.Office.Interop.Word._Document.Close"时的编译时警告

困境:如果我明确投射到Microsoft.Office.Interop.Word._Document,ReSharper 会警告我"类型强制转换是多余的"

问题:对于此警告消息,是否有真正的解决方案,而不仅仅是拼凑?

警告 CS0467 使用“Microsoft.Office.Interop.Word._Document.Close”

只是不要强制转换,C# 不需要它:

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

好吧,如果您需要转换以避免错误...投!

Resharper 有(好的)通用规则,但有时它们无法应用。

在此特定情况下,您可以"隐藏"锐化器警告消息("禁止检查 xxx 并带有注释"),或者...与(如果可以/被允许的话)一起生活。

编辑:好的,lib版本12.0.0.0收到警告

所以你可以试试

_Document w = new Document();

并且应避免 C# 和锐化器警告。