なぜこれがコンパイルされないのか疑問に思っています:
public static void SomeFunction(Guid someGuid = Guid.NewGuid())
{
// Do stuff
}
メッセージ付き
「「someGuid」のデフォルトのパラメータ値はコンパイル時定数でなければなりません」
オーバーロードされたバージョンはコンパイルされますが:
public static void SomeFunction()
{
SomeFunction(Guid.NewGuid());
}
public static void SomeFunction(Guid someGuid)
{
// Do stuff
}
言い換えれば、コンパイラが最初の状況を2番目の状況に変換しないのはなぜですか?このデザインの選択の背後にあるものは何ですか?