C#上不允许使用默认参数说明符错误

时间:2012-12-24 08:43:29

标签: c# .net-3.5 default-parameters

当我构建项目时,VC#表示不允许使用Default参数说明符。它引导我看到这段代码:

public class TwitterResponse
{
    private readonly RestResponseBase _response;
    private readonly Exception _exception;

    internal TwitterResponse(RestResponseBase response, Exception exception = null)
    {
        _exception = exception;
        _response = response;
    }

可能是我的错误?

2 个答案:

答案 0 :(得分:5)

错误是:

Exception exception = null

您可以转到C#4.0或更高版本,此代码将编译!

这个问题可以帮到你:

C# 3.5 Optional and DefaultValue for parameters

或者您可以在C#3.0或更早版本中进行两次覆盖以解决此问题:

public class TwitterResponse
{
    private readonly RestResponseBase _response;
    private readonly Exception _exception;

    internal TwitterResponse(RestResponseBase response): this(response, null)
    {

    }

    internal TwitterResponse(RestResponseBase response, Exception exception)
    {
        _exception = exception;
        _response = response;
    }
}

答案 1 :(得分:1)

如果您使用的是.NET 3.5,则可能会发生这种情况。可选参数在C#4.0中引入。

internal TwitterResponse(RestResponseBase response, Exception exception = null)
{
    _exception = exception;
    _response = response;
}

应该是:

internal TwitterResponse(RestResponseBase response, Exception exception)
{
    _exception = exception;
    _response = response;
}

请注意exception变量没有默认值。