C# 在类内为属性赋值

C# 在类内为属性赋值,c#,properties,set,C#,Properties,Set,我有一个很简单的问题。为什么不能在方法之外为属性赋值,如下所示?在方法内部执行与在方法外部执行有什么区别? 请参阅下文: 编辑: 下面是我试图做的,因此上面的问题 类根范围内的任何内容都只是类定义的一部分。类定义定义了对象具有哪些属性、可以对其调用哪些方法、构造对象的方式等 把一个实际的陈述放在这里没有任何意义;它什么时候运行?代码的实际执行不是类定义的一部分 因此,所有语句都必须驻留在一个方法中,因为只有方法才能真正执行语句。创建类时,您可以执行代码。为此使用构造函数。它看起来像一个方法,但

我有一个很简单的问题。为什么不能在方法之外为属性赋值,如下所示?在方法内部执行与在方法外部执行有什么区别?
请参阅下文:

编辑:

下面是我试图做的,因此上面的问题


类根范围内的任何内容都只是类定义的一部分。类定义定义了对象具有哪些属性、可以对其调用哪些方法、构造对象的方式等

把一个实际的陈述放在这里没有任何意义;它什么时候运行?代码的实际执行不是类定义的一部分


因此,所有语句都必须驻留在一个方法中,因为只有方法才能真正执行语句。

创建类时,您可以执行代码。为此使用构造函数。它看起来像一个方法,但没有返回类型,其名称与类名相同:

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

您不能在方法之外有常规语句。您将在何时执行该特定代码行?何时创建实例?如果这是默认值,您只需在ctor中指定它或将其作为支持字段初始值。请查看编辑。也许您想要的是
构造函数
。请避免发布代码图片,发布代码并将其格式化(它们甚至是编辑器中为您执行此操作的按钮
{}
),谢谢。我只是想知道你为什么做不到。这解释得很清楚。