Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 4.0 我可以在c#4.0中设置linq表达式可选参数吗?_C# 4.0_Optional Parameters - Fatal编程技术网

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在许多论坛上讨论了可选参数的缺点。了解如何重载和重写方法是一个好处