Параметрические конструкторы в структурах для С# 6

Я понимаю, что конструкторы Parameterless в структурах теперь разрешены.

Но следующее дает мне ошибку компиляции в сообществе VS 2015

public struct Person 
{ 
    public string Name { get; } 
    public int Age { get; } 
    public Person(string name, int age) { Name = name; Age = age; } 
    public Person() : this("Jane Doe", 37) { } 
}

Ошибка: "Структуры не могут содержать явные конструкторы без параметров"

Кто-нибудь знает, почему?

Ответ 1

Эта функция присутствовала в более старых превью С# 6.0, поэтому в некоторых статьях рассказывается об этом. Но он был удален и поэтому не присутствовал в версии, распространяемой с VS 2015 RC.

В частности, изменение было отменено в запросе на вытягивание # 1106 с дополнительной информацией об обосновании issue # 1029. Цитирую Владимира Садова:

Поскольку мы проводили все больше и больше тестов, мы продолжали обнаруживать случаи, когда конструкторы конструктивных конструкций без параметров приводили к несовместимому поведению в библиотеках или даже в некоторых версиях CLR.

[...]

После пересмотра потенциальных проблем, возникающих из-за нарушения долговременных предположений, мы решили, что для наших пользователей было бы лучше восстановить требование к конструкторам конструктора всегда иметь формальные параметры.

Ответ 2

Я не уверен, почему, однако, это разрешено:

public struct Person 
{ 
    public string Name { get; } 
    public int Age { get; } 
    public Person(string name = null, int age = 0) { Name = name; Age = age; } 
}

Решает ли ваша проблема?