C # Модификатор 'abstract' недопустим для этого элемента - PullRequest
3 голосов
/ 06 апреля 2011

Я пытаюсь построить C # проект другого парня.Во многих интерфейсах я получаю сообщение об ошибке:

The modifier 'abstract' is not valid for this item

В следующем интерфейсе:

namespace Services.Email
{
    using System;
    using System.Collections;
    using.System.Collections.Generic;
    using System.Runtime.CompilerServices;

    public interface IEmailService
    {
        abstract event EventHandler<SendCompletedEventArgs> SendSummaryCompleted;

        void SendNewsItem(DocumentNewsItem newsItem, string email);
        void SendSummaryAsync(Session session, Advisor advisor);
    }
}

Ответы [ 5 ]

16 голосов
/ 06 апреля 2011

Просто удалите abstract, это не относится к интерфейсам.Все в интерфейсе уже по сути "абстрактно".Абстрактный класс на самом деле во многом совпадает с классом с обязательным интерфейсом, который не реализован.

3 голосов
/ 06 апреля 2011

См. Эту статью MSDN: http://msdn.microsoft.com/en-us/library/aa664580%28v=vs.71%29.aspx

Все члены интерфейса неявно имеют открытый доступ.Это ошибка времени компиляции для объявлений членов интерфейса, чтобы включить любые модификаторы.В частности, элементы интерфейсов не могут быть объявлены с помощью модификаторов abstract, public, protected, internal, private, virtual, override или static.

Решение: удалить «абстрактный» модификатор

1 голос
/ 06 апреля 2011

В .NET и C # модификаторы членов в интерфейсах не поддерживаются.

Если вы хотите что-то подобное, вам лучше переключить их на абстрактные классы, но ИМХО это не очень хороший способразработка программного обеспечения (рефакторинг кода, не задумываясь о том, что является фактическим требованием).

Простое решение: просто удалите любой модификатор, оставьте тип, идентификатор и параметры любого типа элемента интерфейса.

1 голос
/ 06 апреля 2011

Интерфейсам запрещается содержать такие модификаторы, как abstract, virtual, public, protected, private, ...
Решение:
Просто удалите его.

0 голосов
/ 06 апреля 2011

Это действительно недействительно. Удалите абстрактное ключевое слово и перекомпилируйте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...