无法在C#中初始化自动属性

时间:2010-04-06 14:21:42

标签: c# asp.net .net-3.5

我有一个自动属性

public int GearCount {get;组; }

当我尝试像这样初始化它时 -

Tandem t = new Tandem(GearCount = 5);

它出现如下错误

当前上下文中不存在名称'GearCount'

这里有什么不对? 此外,如果我做正常的实例化,它工作正常。 Tandem t = new Tandem();

3 个答案:

答案 0 :(得分:10)

我们需要您的其余代码

您向我们展示了一个名为HasToolkit的自动媒体资源,但您遇到的问题与HasToolkit无关。

您的Tandem班级GearCount上看起来没有自动属性。

修复问题后,您可能会遇到一些语法问题。

如果您的Tandem课程如下:

public class Tandem
{    
   public bool HasToolkit {get; set;}

   public int GearCount {get; set;}
}

然后你的初始化代码是:

Tandem t = new Tandem() { GearCount = 5 };

或者:

Tandem t = new Tandem() { GearCount = 5, HasToolkit = true };

答案 1 :(得分:2)

您声明的属性与您尝试在初始化程序中设置的属性不同,也不是类型。此外,如果要使用初始化程序,则需要使用大括号而不是括号:

var t = new Tandem{ HasToolKit = true };

答案 2 :(得分:1)

这是因为该属性名为HasToolKit且类型为bool,而不是名为GearCount且类型为int

为此,您似乎也在混合构造函数和属性初始化器语法。你在调用案例中想要的是:

Tandem t = new Tandem {GearCount = 5};

Tandem的定义需要有类似的东西:

public int GearCount { get; set; }

不完全确定HasToolKit在事物计划中的含义。