2013-11-13 3 views
0
public class MyClass 
{ 
    private Func<string, string> KeyTransformer; 

    public MyClass(Func<string, string> keyTransformer) 
    { 
     KeyTransformer = keyTransformer; 
    } 

    public string DoSomething(string input) 
    { 
     return KeyTransformer(input); 
    } 
} 

Очевидно Resharper предлагает мне переименовать "поле" для _keyTransformer.Resharper StyleCop SA1306 и корпус Func <T> делегатов

Но чувствует неправильно написать что-то вроде этого:

string newKey = _keyTransformer("input"); 

Так вопрос № 1 является: Паскаль корпус или верблюд корпус?

И вопрос № 2 (в случае Паскаля): Как сказать Resharper это нормально, чтобы иметь паскаль кожух для Func?

+0

Любая конкретная причина, у вас есть поле, а не autoproperty? – AakashM

+0

Если он не хочет раскрывать «KeyTransformer» за пределами MyClass, почему он должен использовать autoproperty? Просто не говорите «частная собственность»: P – Carnifex

ответ

0

Какой стиль станет более понятным для следующего человека, чтобы прочитать код?

В этом случае вы делаете что-то необычное (вызов метода, хранящегося в поле), так что синтаксис делает его выдающимся, это не плохо.

0

Это личное поле для верблюда.

Правило SA1306: Имена переменных и имена частных полей должны начинаться с буквы нижнего регистра: {0}.

Это не очевидно (в случае R #) предложить подчеркнуть.

Правило SA1309: Имена полей не должны начинаться с символа подчеркивания.

Таким образом, вы должны изменить поведение вашего R # :) В моем случае после установки StyleCop (4.7.47) и открытый проект в VS, R # уведомит мой, что некоторые правила не согласуются с StyleCop и спросил мой, если я хочу изменить его. Поэтому у меня есть одни и те же правила в R # и StyleCop (например, соглашение об именовании для частных полей)

public class MyClass 
{ 
    private Func<string, string> keyTransformer; 

    public MyClass(Func<string, string> keyTransformer) 
    { 
     this.keyTransformer = keyTransformer; 
    } 

    public string DoSomething(string input) 
    { 
     return keyTransformer(input); 
    } 
} 
Смежные вопросы