这是我的方法:
public void SomeQuery(string email = "", Guid userId = Guid.Empty)
{
// do some query
}
userId
给出了一个错误,因为它必须是编译时常量,我理解。但即使我宣布一个const:
private const emptyGuid = Guid.Empty;
然后将方法签名更改为:
public void SomeQuery(string email = "", Guid userId = emptyGuid)
{
// do some query
}
仍然没有爱。
我缺少什么?
答案 0 :(得分:20)
您是否尝试将其设置为Guid
ala:
public void SomeQuery(string email = "", Guid userId = new Guid())
{
// do some query
}
应该做的伎俩。
答案 1 :(得分:2)
使用不需要Guid的版本重载方法不是更好的解决方案吗?这样可以解决问题,在我看来这将是一个更好的设计。当然,可能还有其他限制因素,我不知道需要这种设计。
答案 2 :(得分:2)
也许它会有所帮助(使用operator ??和Guid nullable类型)
public void some_method(string name, Guid? guid = null)
{
_name = name;
_guid = guid ?? Guid.NewGuid();
}