Как я могу устранить двусмысленность в этом вызове метода Microsoft.Office.Excel?

Я использую функцию рабочего листа excel office 2007 в коде С#. VS2010 выдает это предупреждение

Предупреждение 3 Неоднозначность метода 'Microsoft.Office.Interop.Excel._Worksheet.Activate()' и не-метод 'Microsoft.Office.Interop.Excel.DocEvents_Event.Activate. Использование метода группа. D:\EXLANEDB01p\dev\libraries\EXCEL\Excel.cs 531 95 EXCEL

Как мне это решить? вызов

xSheet.Activate(); 

где xSheet передается как ref в вызове как

ref Microsoft.Office.Interop.Excel.Worksheet xSheet

Ответы

Ответ 1

Вам нужно устранить несоответствие имени Activate. Внутри интерфейса Worksheet Activate - это либо метод (если он рассматривается как объект _Worksheet), либо событие (если смотреть как объект DocEvents_Event).

Перенесите свой объект в Microsoft.Office.Interop.Excel._Worksheet, затем вызовите Activate().

((Microsoft.Office.Interop.Excel._Worksheet)xSheet).Activate();

Или объявите новую переменную _Worksheet и используйте ее в своем методе.

_Worksheet sheet = xSheet;
sheet.Activate();

В противном случае вы можете изменить объявление метода для ссылки на _Worksheet вместо Worksheet, а также на все связанные объявления.

void MyMethod(ref Microsoft.Office.Interop.Excel._Worksheet xSheet)
{
    // ...
}

// usage:
_Worksheet sheet = new Worksheet();
MyMethod(ref sheet);