Ответ 1
Я нашел вышеприведенную опечатку в своем коде довольно много. Я всегда удивляюсь, что компилятор, похоже, не заботится об этом. Почему это не синтаксический код?
Поскольку люди, разрабатывающие грамматику синтаксиса С#, были достаточно умны, чтобы изучать уроки с других языков программирования, которые не позволяли свисающей запятой, постоянное раздражение программистов на этих языках.
Например, ECMAScript (JavaScript) вначале молчал об этой проблеме, и поэтому, естественно, некоторые реализации (SpiderMonkey в Firefox, Opera JavaScript и т.д.) допускали их, в то время как другие (Microsoft JScript) этого не делали. И это привело к тому, что "почему эта работа не работает в IE" здесь и в другом месте. (К счастью, ECMAScript 5 явно их разрешает, и IE8, наконец, поддерживает их в инициализаторах объектов - IE8 по-прежнему обрабатывает инициализаторы массивов нестандартным способом, хотя, честно говоря, болтающаяся запятая для них была разъяснена только в ECMAScript 5).
Вы также найдете это во многих других местах в грамматике С#, например, перечисления и инициализаторы массивов.