我们不能用在派生类地产出侧的方法是什么?(can't we use property in

2019-09-29 01:23发布

获取错误“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;
        }
    }
}

Answer 1:

是; 这是正常的。 随着字段初始化之外,代码必须在方法。 这不是一个字段初始值。

要么分配a=1; 在派生构造,或创建一个重载的构造,并通过1为基本类型的构造。

因此,要么:

public test() {
    a = 1;
}

要么:

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


Answer 2:

该错误是因为a=1的方法中的主体是没有的。



Answer 3:

如果你想,当你创建一个测试对象为等于1,那么你应该把A = 1成测试类的构造函数。



文章来源: can't we use property in the derived class out side the method?
标签: c# asp.net oop