如何消除歧义警告?

时间:2011-11-28 23:39:58

标签: c# visual-studio-2010 warnings compiler-warnings office-interop

我有这个警告:

  

警告3方法'Microsoft.Office.Interop.Word._Application.Quit(ref object,ref object,ref object)'和非方法'Microsoft.Office.Interop.Word.ApplicationEvents4_Event.Quit'之间存在歧义。使用方法组。

在我的行上

wordApplication.Quit();

我尝试将其替换为:

wordApplication.Quit(false); // don't save changes

wordApplication.Quit(false, null, null); // no save, no format

但它一直给我这个警告。这不是一个大问题,因为代码完美编译并按预期运行,但我想摆脱警告。我该怎么办?

4 个答案:

答案 0 :(得分:72)

明确地将引用转换为类型_Application

((_Application)wordApplication).Quit(); 

答案 1 :(得分:0)

如果您希望更改退出Microsoft.Office.Interop.Word._Application.Quit以删除消息,或者(未亲自尝试过)使用using语句,则可以在包含的命名空间中使用两种退出方法。 / p>

答案 2 :(得分:0)

我用过这个

   object oMissing = System.Reflection.Missing.Value;
   ((Microsoft.Office.Interop.Word._Application)wordApp).Quit(ref oMissing, ref oMissing, ref oMissing);
               wordApp = null;
               GC.Collect();
               GC.WaitForPendingFinalizers();

答案 3 :(得分:0)

我认为您需要定义要退出的参数类型。我使用以下内容,这似乎有用。

using Microsoft.Office.Interop.Word;
...
Application wordApplication = new Application();
...
    object paramMissing = Type.Missing;
    object saveOptionsObject = Microsoft.Office.Interop.Word.WdSaveOptions.wdDoNotSaveChanges;
        wordApplication.Quit(ref saveOptionsObject, ref paramMissing, ref paramMissing);
        wordApplication = null;