我是一个非常简单的问题。为什么不能为属性分配方法之外的值,如下所示?在方法内部和方法外部进行区别是什么? 请参阅以下内容:
编辑:
以下是我试图做的事情,因此上面的问题。
答案 0 :(得分:2)
类根范围内的任何内容都只是类定义的一部分。类定义定义了对象具有哪些属性,可以在其上调用哪些方法,构造对象的方法等等。
在这里添加一个实际的语句没有任何意义;什么时候会跑?代码的实际执行不是类定义的一部分。
因此,所有语句都必须驻留在方法中,因为方法是实际执行语句的唯一事物。
答案 1 :(得分:1)
您可以在创建类时执行代码。为此使用构造函数。它看起来像一个方法,但没有返回类型,其名称与类名相同:
public class SubClass : BaseClass
{
public SubClass()
{
Build = "Hello"; // Build must be either public or protected in the base class.
// SubClass inherits Build, therfore no "base." is required.
}
// Other methods to go here
}
如果基类具有带参数的构造函数,则必须传递基类'构造:
public class BaseClass
{
public BaseClass(string build)
{
Build = build;
}
public string Build { get; private set; }
}
public class SubClass : BaseClass
{
public SubClass()
: base("Hello") // Calls the base class' constructor with "Hello"
{
}
}
现在你可以致电:
var baseClass = new BaseClass("Hello");
// or
var subClass = new SubClass();
两者都将"Hello"
分配给Build
。