Я получаю ошибку неоднозначности, которая, кажется, находится между событием и именем свойства.У меня есть класс, который реализует интерфейс Microsoft.Office.Interop.Excel.Workbook
и украшает его дополнительной логикой.Интерфейс реализуется через приватную переменную типа Workbook.Я использовал ярлык Visual Studio для реализации интерфейса через этот закрытый член.Но я получаю некоторые ошибки, связанные с неоднозначностью.
Например, есть свойство Sync, которое имеет тип Microsoft.Office.Core.Sync.Существует также событие под названием Синхронизация.Оба появляются как ошибки для меня.Вот фрагмент кода:
class WorkbookDecoratorImpl : Workbook
{
private Workbook _workbook;
public Microsoft.Office.Core.Sync Sync => _workbook.Sync;
event WorkbookEvents_SyncEventHandler WorkbookEvents_Event.Sync
{
add
{
_workbook.Sync += value;
}
remove
{
_workbook.Sync -= value;
}
}
Я получаю ошибки как для события, так и для свойства, говоря:
Неоднозначность между «WorkbookEvents_Event.Sync» и «_Workbook.Sync '
Я получаю аналогичную ошибку для Activate, но в этом случае только при переопределении события:
event WorkbookEvents_ActivateEventHandler WorkbookEvents_Event.Activate
{
add
{
_workbook.Activate += value;
}
remove
{
_workbook.Activate -= value;
}
}
В этом случае я получаю:
error CS1656: Cannot assign to 'Activate' because it is a 'method group'
Примечания
Кажется, Visual Studio был достаточно умен, чтобы избежать двусмысленности в названии события, добавив префикс "WorkbookEvents_Event".В случае с Open у нас неодинаковая неоднозначность и Visual Studio не имеет префикса:
public event WorkbookEvents_OpenEventHandler Open