Стиль кодирования: присвоения внутри выражений?

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


Вариант ①

// How many spaces are there in the beginning of string? (and remove them)
int spaces = text.Length;
text = text.TrimStart(' ');
spaces -= text.Length;
  • Преимущество: Назначение в отдельной строке, поэтому побочный эффект очевиден
  • Недостаток: Первая строка сама по себе выглядит бессмысленной; вы должны заметить третью строчку, чтобы понять это

Вариант ②

// How many spaces are there in the beginning of string? (and remove them)
int spaces = text.Length - (text = text.TrimStart(' ')).Length;
  • Преимущество: Оператор имеет смысл с точки зрения выполняемых вычислений
  • Недостаток: Присвоение вроде бы скрыто внутри выражения; побочный эффект можно не заметить

11
задан SolutionYogi 17 February 2011 в 17:42
поделиться