Здравствуйте, Pavel Dvorkin, Вы писали:
PD>Позволю себе вмешаться. Синтаксическую ошибку в программе VladD2 компилятор нашел, но посчитал ее предупреждением. Не обращать внимание на предупреждения не стоит ни в С++, ни в С#. Как минимум, надо на них посмотреть и решить, стоит ли игнорировать, а лучше вообще убрать.
+1. Только есть некоторая разница. Это компилятор посчитал ее предупреждением. Хотя и ясно, что подобная ошибка предупреждением быть не может. Непонятно о чем думали разработчики компилятора.
PD>А что касается вывода, то ошибка в спецификации строки вывода ловится только в рантайме. Вот такое
PD> float f = 9;
PD> Console.WriteLine("{0,8:d}", f);
PD>компилируется на ура
Абсолютно правильно компилируется. Это ошибка семантики программиста. Но есть достаточно много ситуаций когда среда может говорить об ошибке постфактум. Типа:
//такое даст ошибку компиляции
bool b=true;
int i=(int)fl;
//такое даст ошибку при исполнении
bool b=true;
object obj=b;
int i=(int)b;
Но по крайней мере я знаю, что компилятор старается помочь мне.
PD>А вот такое
PD> Console.WriteLine("{0,8:d}");
PD>и вообще работает, только выводит не то, что автор хотел
, а то, что здесь есть.
Это семантическая ошибка программиста.

Среда всего-лишь выполнила то, что программист ей сказал. А что программист хотел, ни один язык не предугадает.
С уважением, Gleb.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>