我想知道为什么这不会编译:
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
}
换句话说,为什么编译器不把第一种情况翻译成第二种呢?这种设计选择背后的原因是什么?