2014-12-02 67 views
0

我用C#6.0
我的代碼無法使用主構造函數參數

public class Circle(int radius) 
{ 
    public double circumference => 2 * 3.14 * radius; 
} 

上面的代碼不起作用以下行給出了一個錯誤的新功能打「這個名字半徑不存在於當前上下文」

但是當我使用

public class Circle(int radius) 
{ 
    int Radius = radius; 
    public double circumference => 2 * 3.14 * Radius; 
} 

代碼只是正常工作。
這是VS的一些錯誤,因爲它的CTP或者是我的代碼有問題。因爲我相信我應該可以在構造函數中使用主構造函數的參數,而不用將其設置爲其他變量。

+1

可能重複(http://stackoverflow.com/questions/26915789/primary-constructors-no-longer-compile-in-vs2015) – Gigi 2014-12-02 17:23:52

回答

1

按照MSDN magazine article在新的語言特性:

默認情況下,主構造函數的參數是不是一個初始化的外部訪問。

所以你不能直接在你的計算得到的方法中使用它們。

+0

但你讀到「Expression-bodied members」它說「我們的班上有成員可以有一個表達主體」。 在上面的例子中,我應該可以在其範圍內使用參數,這裏看起來就是整個構造函數本身。 – Pankaj 2014-12-02 10:51:02

+1

我不確定我關注。表達式的成員只是語法上的糖,你仍然以一個方法和方法結束,看不到主要的構造函數參數。你不再是構造函數的內部,它只是新的語法讓它感覺像你一樣。 – DoctorMick 2014-12-02 10:58:04

2

好吧,這可能不會直接回答你的問題,但主構造函數已經從C#6.0中撤銷。

見:Changes to the language feature set這個問題:Primary constructors no longer compile in VS2015

你大概在Visual Studio 2014 CTP代碼。您需要下載並安裝Visual Studio 2015 Preview的新版本。 (但你首先要取消安裝Visual Studio 2014 CTP)

您可能會看到最新的:Languages features in C# 6 and VB 14

的[主構造函數不再在VS2015編譯]
相關問題