3

当我构建我的项目时,VC# 说不允许使用默认参数说明符。它把我带到了这段代码:

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

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

我的错误可能是什么?

4

2 回答 2

5

错误是:

Exception exception = null

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

这个问题将帮助您:

C# 3.5 参数的可选和默认值

或者,您可以在 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;
    }
}
于 2012-12-24T08:45:32.687 回答
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

于 2012-12-24T08:45:51.887 回答