Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Как вы автоматически реализуете интерфейс на C #?

Автор вопроса: RLHОтветов: 3

Ранее в Visual Studio, если вы объявляли класс с интерфейсом, вы могли поместить курсор на интерфейс, щелкнуть его правой кнопкой мыши и выбрать Реализовать интерфейс. (См. здесь по аналогичному вопросу для VS 2008.)

Я начал работать над проектом, в котором определены многочисленные интерфейсы, которые будут использоваться с SimpleInjector. Теперь, когда я начинаю писать свои классы обслуживания, я заметил, что пункт меню Реализовать интерфейс исчез.

Как я могу реализовать все необходимые заглушки методов, как в VS 2008?

Извините, если это дубликат, но я нигде не смог найти этот ответ.


ИЗМЕНИТЬ ЗАПИСИ - 17 августа 2018 г.

Это был горячий вопрос на протяжении многих лет. Я обновил заголовок и теги для этого, чтобы он охватывал все соответствующие версии C # и Visual Studio.

В конечном итоге это был НЕУДАЧНЫЙ кодер с моей стороны. Как и классы, интерфейсы, генерируемые VS, не определяются как public. Вам придется вручную изменить объявление интерфейса с помощью аксессора public, поскольку VS не добавляет его автоматически. Этот шаг легко забыть, потому что вам не нужно устанавливать модификаторы членов в интерфейсе, поскольку по определению все они будут public.

  • msdn.microsoft.com/en-us/library/tx1s9z1w.aspx кажется, все еще там Paolo Falabella 25.07.2013
  • К вашему сведению, эта функция также существует в VS2010. На самом деле я не пробовал использовать его в VS2012, поскольку обычно я не использую эту функцию слишком часто, поэтому я не могу комментировать, есть она или нет. Но по моему опыту, если у вас есть другие ошибки компиляции в вашем коде одновременно или отсутствуют соответствующие ссылки на сборку, иногда такие параметры не появляются, потому что он не может понять, что это такое или что вы делаете. Chris Sinclair 25.07.2013
  • У меня работает как всегда. Интерфейс агрегата - это первый пункт контекстного меню, доступный при щелчке правой кнопкой мыши по названию интерфейса. VS2012 точно. Wiktor Zychla 25.07.2013
  • Я хочу реализовать интерфейс IComparable в 2010 VS, но по-прежнему не показывает синий тег ... Черт возьми! При отладке ошибок тоже нет. Что мне здесь не хватает? Нашел проблему. Есть два типа интерфейсов. Один для типобезопасности с использованием Generics, а другой для небезопасного типа. Мне пришлось использовать безопасный тип, чтобы увидеть синий тег. Но я сомневаюсь, почему так? bonCodigo 15.05.2014

visual-studiointellisense

Ответы

Ответ 1 · рейтинг 10 · Cam Bruce

Это не изменилось. Все, что вам нужно сделать, это навести указатель мыши на имя интерфейса в классе, и должна появиться синяя полоса подчеркивания, предоставляющая вам варианты реализации интерфейса. Если синее подчеркивание не отображается, убедитесь, что интерфейс доступен для тех сборок и пространств имен, на которые вы ссылаетесь.

Ответ 2 · рейтинг 9 · Curtis Rutland

Если вы посмотрите на название интерфейса, вы увидите небольшое синее подчеркивание:

Если вы наведете на него курсор, появится раскрывающееся меню, позволяющее реализовать интерфейс:

Ответ 3 · рейтинг 7 · Sinaesthetic

Поместите курсор где-нибудь в тексте интерфейса (часть после двоеточия) и нажмите Ctrl +.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы