I am wondering why this would not compile:
public static void SomeFunction(Guid someGuid = Guid.NewGuid()) { // Do stuff } with the message
"Default parameter value for 'someGuid' must be a compile-time constant"
while the overloaded version would compile:
public static void SomeFunction() { SomeFunction(Guid.NewGuid()); } public static void SomeFunction(Guid someGuid) { // Do stuff } In other words, why doesn't the compiler translate the first situation in the second? What lies behind this design choice?