在属性内为属性赋值

时间:2014-12-03 18:05:01

标签: c# properties set

我是一个非常简单的问题。为什么不能为属性分配方法之外的值,如下所示?在方法内部和方法外部进行区别是什么? 请参阅以下内容:

enter image description here

编辑:

以下是我试图做的事情,因此上面的问题。

enter image description here

2 个答案:

答案 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