我们可以在方法之外的派生类中使用属性吗?

本文关键字:属性 派生 方法 我们 | 更新日期: 2023-09-27 18:02:12

获取错误'ClassLibrary3.Class1 '。A '是一个'属性',但当我想访问基类的属性时,它像'类型'一样使用。

 namespace ClassLibrary3
    {
        public class Class1
        {
            public int a { get; set; }
            public int A { get; set; }
        }
    public class test : Class1
    {
        a=1; // error 'ClassLibrary3.Class1.a' is a 'property' but is used like a 'type'
        public void hello()
        {
            a = 10;
        }
    }
}

我们可以在方法之外的派生类中使用属性吗?

是;这很正常。除字段初始化器外,代码必须在方法中。这不是一个字段初始化式。

要么在派生构造函数中赋值a=1;,要么创建重载构造函数并将1传递给基类型的构造函数。

:

public test() {
    a = 1;
}

或:

protected Class1(int a) {
    this.a = a;
}
...
public test() : base(1)
{}

错误是因为a=1不在方法体中。

如果您希望在创建测试对象时a等于1,那么您应该将a=1放入测试类的构造函数中。