Универсальный.Net Producer/Consumer

Вопрос обоснованный, и я бы не стал считать это изменение синтаксическим сахаром. Если сравниваемое значение является результатом вычислений, было бы лучше сказать:

  if (someComplicatedExpression ?== 1 : 2 : 3 : 5)

, чем сказать

  int temp;
  temp = someComplicatedExpression;
  if (temp == 1 || temp == 2 || temp == 3 || temp == 5)

, особенно если не было никакой другой необходимости для временной переменной обсуждаемый. Современный компилятор мог бы, вероятно, распознать короткое полезное время жизни «temp» и оптимизировать его для регистра, и, вероятно, мог бы распознать шаблон «посмотрим, является ли переменная одной из определенных констант», но не было бы вреда, если бы программист сохранить компилятор проблемы. Указанный синтаксис не будет компилироваться на любом существующем компиляторе, но я не думаю, что он будет более двусмысленным, чем (a + b >> c + d), чье поведение определено в спецификации языка.

Что касается того, почему никто этого не сделал, я не знаю.

8
задан Joel Coehoorn 7 July 2009 в 03:40
поделиться

3 ответа

Microsoft CCR содержит многое из того, что вам нужно.

Здесь приведены несколько примеров кода и примечания по использованию.

5
ответ дан 5 December 2019 в 21:21
поделиться

Вы смотрели MiscUtil ?

0
ответ дан 5 December 2019 в 21:21
поделиться

Марк Гравелл написал хороший пример блокировки очереди в этот ответ .

2
ответ дан 5 December 2019 в 21:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: