Почему VS2012 Extract Interface генерирует частные (извините, внутренние) интерфейсы

Это всего лишь незначительное раздражение, но я не могу понять, почему они так спроектировали. Если вы «Извлекаете интерфейс» для класса, он всегда создает класс без модификатора доступа, другими словами, это частный интерфейс. Может ли кто-нибудь сказать мне, как бы вы когда-нибудь использовали частный интерфейс?

Изменить

Моя ошибка, я должен был сказать внутреннюю ... этот вопрос кажется дублировать.


person Riegardt Steyn    schedule 08.11.2013    source источник
comment
Я тоже согласен, что странно, что интерфейс по крайней мере не получает модификатор исходного класса или что в мастере есть опция для модификатора.   -  person Mattias Åslund    schedule 08.11.2013


Ответы (3)


Как было указано в предыдущем ответе, доступ не является частным для интерфейсов, а является внутренним.

По умолчанию любые Property/Class/Interface создаются без модификаторов доступа. Если вас это раздражает, вы можете найти подробное описание того, как изменить модификаторы доступа для класса, в шаблоне Visual Studio здесь.

Вы можете настроить его под свои нужды.

person Carbine    schedule 08.11.2013
comment
Спасибо за ссылку, но это работает, только если вы добавите новый интерфейс. Я не знаю, есть ли где-нибудь у Extract Interface собственный уникальный шаблон (?) - person Riegardt Steyn; 08.11.2013
comment
Я принимаю ваш ответ, потому что вы пытались предложить хотя бы (бесплатный) обходной путь :-) - person Riegardt Steyn; 08.11.2013
comment
Я попытался найти собственный шаблон для VisualStudio Refactor - ›Extract Interface. Не удалось найти много информации. Спасибо, что приняли - person Carbine; 08.11.2013

Это не приватное, это внутреннее, когда нет модификатора доступа.

Только некоторые элементы, такие как поля, становятся закрытыми, если модификатор отсутствует.

Вы можете очень четко увидеть это поведение при простом создании нового консольного приложения: класс Program также не имеет модификатора, и он точно не является частным ;-).

person Golo Roden    schedule 08.11.2013
comment
Спасибо, но я спрашиваю не об этом :-) Я отредактировал свой вопрос ... все равно кажется дубликатом - person Riegardt Steyn; 08.11.2013

Модификатор доступа по умолчанию для интерфейсов - внутренний. Кроме того, я рекомендую вам использовать Resharper, поскольку он имеет множество вариантов рефакторинга.

person mehrandvd    schedule 08.11.2013