Ярлык для создания конструктора с переменными (C # Visual Studio 2010) - PullRequest
10 голосов
/ 17 января 2012

В Visual Studio 2010 C # вы можете в классе набрать ctor, а затем нажать tab , и Visual Studio создаст для меня конструктор этого класса. Это очень удобно.

Но есть ли способ заставить Visual Studio создать конструктор со всеми моими переменными, свойствами и т. Д.?

Например,

public class User
{
    public String UserName { get; private set; }
}

И для этого я хочу ctor + tab , чтобы сделать меня

public User(string UserName)
{
    this.UserName = UserName;
}

Ответы [ 8 ]

14 голосов
/ 17 января 2012

Вы можете сделать это наоборот; если вы запускаете без конструктора или поля и пытаетесь использовать несуществующий конструктор, вы можете нажать ctrl + . , чтобы попросить его сгенерировать один для вы, первое использование:

enter image description here

Затем этот компилятор генерирует нечто не слишком отличающееся:

public class User
{
    private string username;

    public User(string username)
    {
        // TODO: Complete member initialization
        this.username = username;
    }
}

Затем вы можете исправить это вручную, если необходимо (возможно, с помощью встроенного рефакторинга переименования и т. Д.). Но не совсем , что вы хотели.

10 голосов
/ 17 января 2012

Я думаю, что вы имеете в виду фрагменты кода. Вы можете написать свои собственные фрагменты кода (они написаны на XML). См. здесь для начальной точки.

Вы также должны иметь возможность редактировать существующие фрагменты кода (например, ctor). Обратитесь к MSDN , чтобы узнать, как это сделать.

Примечание. При дальнейшем поиске по фрагментам кода появятся дополнительные руководства и справочные материалы.

4 голосов
/ 18 января 2012

Благодаря Сэмюэлю Слейду (который говорит мне, что это называется фрагментами кода), мне удалось найти другой ответ переполнения стека: Фрагмент кода для создания конструктора в VS2010 Express

И похоже, что ответ НЕТ , не без плагина / расширения.

Многие ссылаются на расширение ReSharper .

2 голосов
/ 16 августа 2013

Фрагмент кода "ctor" создает только пустой конструктор, но не использует существующие атрибуты класса в этом конструкторе.

Однако последние версии ReSharper позволяют вам выбирать поля, которые будут включены в конструктор (как это делает Eclipse с давних времен).

1 голос
/ 03 июня 2015

Если вы используете ReSharper ярлык Alt + Вставка .

Источник

1 голос
/ 14 августа 2013

Как уже отмечали другие, невозможно создать такие интеллектуальные фрагменты.

Существует бесплатная надстройка Visual Studio под названием Comet , которая может делать то, что вы хотите.

1 голос
/ 17 января 2012

Я думаю, вы могли бы сделать это с помощью фрагмента:

См. Создание и использование фрагментов кода IntelliSense (MSDN)

0 голосов
/ 04 декабря 2017

Использование ReSharper's ctorf .

Это позволит вам создать конструктор с сгенерированными аргументами на основе полей, определенных в классе.

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