我有一个自动属性
public int GearCount {get;组; }
当我尝试像这样初始化它时 -
Tandem t = new Tandem(GearCount = 5);
它出现如下错误
当前上下文中不存在名称'GearCount'
这里有什么不对? 此外,如果我做正常的实例化,它工作正常。 Tandem t = new Tandem();
答案 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
在事物计划中的含义。