Встроенная инициализация свойства и конечная запятая

void Main()
{
    Test t = new Test
    {
        A = "a",
        B = "b", // <-- erroneous trailing comma
    };
}

public class Test
{
    public string A { get; set; }
    public string B { get; set; }
}

Я часто нахожу в своем коде указанную выше опечатку. Меня всегда удивляет, что компилятор, похоже, не заботится об этом. Почему приведенное выше не является синтаксической ошибкой? Есть ли у него какое-нибудь действительное применение?

18
задан fearofawhackplanet 9 March 2011 в 11:30
поделиться