2014-12-02 72 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编译]
相关问题