class Cat
{
public int Age { get; set; }
public string Name { get; set; }
}
Cat cat = new Cat { Age = 10, Name = "Fluffy" };
我是C#的初学者,我想问一个如上所示的例子 当我们初始化字段Age和property Name时,为什么我们不写下如下语句:
Cat cat = new Cat { cat.Age = 10, cat.Name = "Fluffy" };
另一个问题:当我们声明一个方法时,为什么变量可以直接访问属性,如果类Cat还没有执行实例化,如下所示:
static void CatAge(Cat cat)
{
cat.Age = 12;
}
class Cat
{
public int Age
{
get;
set;
}
答案 0 :(得分:5)
因为cat
尚未初始化;因此您无法访问它。此外,即使你可以,也没有意义。您正在初始化该实例。无需指定您正在初始化的实例。这会引起进一步的混淆,因为那时人们可能会写下:
var firstCat = new Cat();
var secondCat = new Cat { firstCat.Age = 10 }; // ???
答案 1 :(得分:0)
Rob首先回答。至于第二,在编写代码时,Cat类包含Age属性,因此编辑器允许访问您的属性。
它将在运行时,它将尝试分配12.如果它为null将抛出异常,否则它将允许。