我们不能在派生类外面使用属性方法吗?

时间:2011-07-16 16:57:29

标签: c# asp.net oop

获取错误'ClassLibrary3.Class1.a'是一个'属性',但当我想访问基类的属性时,它被用作'type'。

 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;
        }
    }
}

3 个答案:

答案 0 :(得分:3)

是;这是正常的。除了字段初始值设定项之外,代码必须位于方法中。那不是字段初始化程序。

在派生的构造函数中指定a=1;,或者创建一个重载的构造函数并将1传递给基类型的构造函数。

所以:

public test() {
    a = 1;
}

或者:

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

答案 1 :(得分:2)

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

答案 2 :(得分:0)

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