2012-12-24 70 views
3

當我構建我的項目時,VC#表示不允許使用默認參數說明符。它導致我到這個代碼:C#上不允許默認參數說明符錯誤

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

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

什麼可能是我的錯誤?

+0

準確的錯誤信息是什麼?哪條線? – dtb

+2

您使用的是哪個版本的Visual Studio和哪個.NET框架? [this](http://stackoverflow.com/q/7822450/76217)有幫助嗎? – dtb

+0

http://stackoverflow.com/questions/7822450/default-parameter-specifiers-are-not-permitted – Habib

回答

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

這可能發生,如果您使用的是.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變量沒有默認值。

+0

我試過這個解決方案,但這不起作用。 –

+0

@SeanfrancisBlalais - 你收到了什麼錯誤? –