Ray*_*awn 0 c# function object
我在设置属性时遇到问题,并意识到我只能在函数或方法中设置属性.我的问题是为什么会这样?
这是我的代码有效:
public class SomeClass
{
Car car = new Car();
public Car JustAMethod()
{
Car car = new Car();
car.year = 2012;
return car;
}
}
Run Code Online (Sandbox Code Playgroud)
为什么这不起作用:
public class SomeClass
{
Car car = new Car();
car.year = 2012;//I get an error here
}
Run Code Online (Sandbox Code Playgroud)
语言规范(大多数情况下)禁止在类级别执行任意语句.所有可以做的是为类的静态成员或实例成员指定默认值.
一般来说,所有代码都必须在类的方法中执行.
正如AntLaC所提到的,您可以通过使用对象初始化语法指定值来解决这个问题.由于可以在类级别定义对象(作为"静态或实例成员的默认值"),因此使用如下语法也可以:
public class SomeClass
{
Car car = new Car() {
year = 2012;
};
}
Run Code Online (Sandbox Code Playgroud)