Não é possível usar String.Empty como um valor padrão para um parâmetro opcional

estou lendoC # eficaz de Bill Wagner. NoItem 14 - Minimizar a lógica de inicialização duplicada, ele mostra o seguinte exemplo de uso do novo recurso de parâmetros opcionais em um construtor:

public MyClass(int initialCount = 0, string name = "")

Observe que ele usou"" ao invés destring.Empty.
Ele comenta:

Você notará [no exemplo acima] que o segundo construtor especificou "" para o valor padrão no diretórionome parâmetro, em vez do mais habitualstring.Empty. Isso é porquestring.Empty não é uma constante em tempo de compilação. É uma propriedade estática definida na classe de sequência. Como não é uma constante de compilação, você não pode usá-lo como valor padrão para um parâmetro.

Se não podemos usar ostring.Empty estática em todas as situações, então isso não anula o propósito dela? Eu pensei que nós o usaríamos para ter certeza de que temos um meio independente do sistema de se referir à string vazia. Meu entendimento está errado? Obrigado.

ATUALIZAR
Apenas um comentário de acompanhamento. De acordo com o MSDN:

Cada parâmetro opcional possui um valor padrão como parte de sua definição. Se nenhum argumento for enviado para esse parâmetro, o valor padrão será usado.Os valores padrão devem ser constantes.

Então não poderemos usarSystem.Environment.NewLine ou use objetos recém-instanciados como valores padrão. Ainda não usei o VS2010, e isso é decepcionante!

questionAnswers(8)

yourAnswerToTheQuestion