Как изменить соглашение об именах по умолчанию для сгенерированных полей в VisualStudio Ma c в C#? - PullRequest
0 голосов
/ 01 апреля 2020

Мне трудно найти эту опцию, если она существует. По умолчанию, когда VSMa c генерирует поле, оно создает его как «this.fieldName». Я предпочитаю использовать подчеркивание для iVars, поэтому я хотел бы исправить его, чтобы оно по умолчанию создавало его как «_fieldName». Кто-нибудь знает, как это сделать? Я не могу найти это в настройках. Спасибо.

1 Ответ

3 голосов
/ 02 апреля 2020

Visual Studio для Ma c имеет некоторую поддержку файлов .editorconfig. Рефакторинг Roslyn должен принимать это во внимание.

Если вы создаете файл .editorconfig в каталоге решений (вам может потребоваться перезапустить Visual Studio для Ma c, чтобы это разрешилось). Затем отредактируйте файл .editorconfig так, чтобы он содержал:

[*.{cs,vb}]

# Instance fields are camelCase and start with _
dotnet_naming_rule.instance_fields_should_be_camel_case.severity = suggestion
dotnet_naming_rule.instance_fields_should_be_camel_case.symbols = instance_fields
dotnet_naming_rule.instance_fields_should_be_camel_case.style = instance_field_style

dotnet_naming_symbols.instance_fields.applicable_kinds = field

dotnet_naming_style.instance_field_style.capitalization = camel_case
dotnet_naming_style.instance_field_style.required_prefix = _

Затем, например, если вы создаете конструктор в своем новом классе:

class MyClass
{
    public MyClass(int test)
    {
    }
}

Затем щелкните правой кнопкой мыши «тест» параметр и выберите Create and initialize field. Visual Studio для Ma c сгенерирует код:

public class MyClass
{
    private readonly int _test;

    public EmptyClass(int test)
    {
        _test = test;
    }
}

Без этого файла .editorconfig Visual Studio для Ma c сгенерирует код:

public class MyClass
{
    private readonly int test;

    public EmptyClass(int test)
    {
        this.test = test;
    }
}
...