Как избежать рекурсии собственности

Это недавно ударило меня по проекту, над которым я работал. Большинство людей знакомы с рекурсией свойств:

public int Test 
{
   get { return this.test; }
   set { this.Test = value; }
}
private int test;

Вы случайно поместили заглавную букву T в этот сеттер, и вы открыли себя дляStackoverflowException, Что еще хуже, если вы не определили это, часто Visual Studio автоматически корректирует корпус для вас в недопустимом состоянии.

Недавно я сделал нечто похожее в конструкторе:

public TestClass(int test)
{
    this.Test = Test;
}

К сожалению, здесь вы не получите StackOverflowException, теперь у вас есть ошибка программирования. В моем случае это значение было передано WebService, который вместо этого использовал значение по умолчанию (которое не было 0), что заставило меня пропустить тот факт, что я его неправильно назначил. Интеграционные тесты все прошли, потому что этот сервис не сказал

«Эй, ты забыл это действительно важное поле!»

Какие шаги я могу предпринять, чтобы избежать такого поведения? Мне всегда советовали не определять переменные, подобные приведенным ниже, и лично мне они не нравятся, но я не могу придумать другие варианты:

private int _test;
private int mTest;

РЕДАКТИРОВАТЬ

Причины, по которым префикс подчеркивания или m обычно нежелателен:

читабельностьЧуть сложнее прокручивать элементы, если вы наследуете от сторонних классов, поскольку получаете сочетание стилей.

Ответы на вопрос(5)

Ваш ответ на вопрос