Мне не нравится ни один из них.Некоторые рекомендации по написанию понятного кода:
- Значение переменной должно оставаться неизменным в течение всего времени существования переменной.
Опция (1) нарушает это руководство;переменная «пробелы» комментируется как означающая «сколько пробелов в тексте», но она никогда не имеет такого значения!Время жизни начинается с количества символов в тексте и заканчивается временем жизни как количеством пробелов, которые были в тексте.Это означает две разные вещи на протяжении всей своей жизни, и ни одна из них не является тем, что указано в документации.
Выражение выражения имеет ровно один побочный эффект.(«Оператор выражения» - это оператор, состоящий из одного выражения; в C # допустимыми выражениями оператора являются вызовы методов, конструкции объектов, приращения, уменьшения и назначения.)
Выражениене имеет побочных эффектов, кроме случаев, когда выражение является единственным побочным эффектом оператора выражения.
Опция (2) явно нарушает эти рекомендации.Трудно рассуждать о выражениях выражений, которые вызывают множество побочных эффектов, их сложно отлаживать, потому что вы не можете поставить точки останова там, где вам это нужно, это все плохо.рекомендации.
string originalText = text;
string trimmedText = originalText.TrimStart(' ');
int removedSpaces = originalText.Length - trimmedText.Length;
text = trimmedText;
Один побочный эффект на строку, и каждая переменная означает одно и то же на протяжении всего срока службы.