C# 4.0 我可以在c#4.0中设置linq表达式可选参数吗?
我有以下代码C# 4.0 我可以在c#4.0中设置linq表达式可选参数吗?,c#-4.0,optional-parameters,C# 4.0,Optional Parameters,我有以下代码 public void GetMessages(Expression<Func<IMessageQueryable, bool>> messageSpecification, string folder = "INBOX") { // Implementation stripped } public void GetMessages(Expression messageSpecification,string folder=“
public void GetMessages(Expression<Func<IMessageQueryable, bool>> messageSpecification, string folder = "INBOX")
{
// Implementation stripped
}
public void GetMessages(Expression messageSpecification,string folder=“收件箱”)
{
//实施剥离
}
如何为messageSpecification
提供默认值?。规范规定该值必须是编译时常量。这可能吗
编辑:不查找是否将其指定为
Expression messageSpecification=null
您可以重载它。您的默认值是多少?为什么要麻烦呢?为不带messageSpecification参数的同一方法创建重载,并在重载方法中自己定义其默认值,然后将其传递给原始方法。不管怎样,默认参数实际上永远不会像那样使用
public void GetMessages(string folder = "INBOX")
{
this.GetMessages(DEFAULT_VALUE, folder);
}
你的意思是我的代码很臭,我走错了方向?当然,可选参数是设计来的,而不是那样使用的。dept在许多论坛上讨论了可选参数的缺点。了解如何重载和重写方法是一个好处