Как заставить Visual Studio генерировать код, используя системные типы (Int32) вместо встроенных псевдонимов (int) - PullRequest
8 голосов
/ 19 января 2009

Можно ли заставить Visual Studio преобразовать встроенные псевдонимы в типы System? Например, если я определю следующий интерфейс

public interface IExample
{
    Int32 DoWork(String input);
}

и использовать VS для автоматической генерации интерфейса, я получаю встроенные типы.

public class Demo : IExample
{
    public int DoWork(string input) { }
}

Я хочу, чтобы те автоматически менялись на Типы систем

public class Demo : IExample
{
    public Int32 DoWork(String input) { }
}

Я не ищу полностью устанавливаемое решение, просто отправную точку. Могу ли я написать сценарий в VS, который подключен к завершению текста или при сохранении? Должен ли я написать дополнение, которое имеет пункт контекстного меню для проектов - «Преобразовать псевдонимы в типы системы»?


Примечание: я предпочитаю системные типы, потому что они отформатированы VS, как и другие типы. Встроенные псевдонимы форматируются как ключевые слова. Кроме того, это руководство по стилю кодирования на моей текущей работе.

Обновление: из MS ясно, что существующая генерация кода VS всегда будет создавать встроенные псевдонимы.

Ответы [ 2 ]

1 голос
/ 04 сентября 2009

Встроенные псевдонимы форматируются как ключевые слова, поскольку являются ключевыми словами . Компилятор выполняет перевод ключевых слов языкового типа данных в базовый тип CLR.

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

Вы заявляете, что это как личные предпочтения, так и требования к стилю кодирования. Я думаю, что проблемы форматирования кажутся неуместными. Как правило, легче / чище / предпочтительнее использовать псевдонимы языков вместо типов CLR. Кроме окраски синтаксиса в текстовом редакторе, между ними нет абсолютно никакой разницы и нет никаких причин использовать имена CLR для ваших типов. Каковы причины (если таковые имеются), приведенные в требованиях к стилю кодирования для принудительного использования типов CLR вместо языковых псевдонимов?

1 голос
/ 19 января 2009

Два типа означают одно и то же, нет опасности, что один будет означать что-то другое.

Единственное отличие состоит в том, как они выглядят. Если это важно для вас, вы можете написать макрос, который заменит любые встроенные псевдонимы типами System.

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