мы не можем использовать свойство в производном классе вне метода? - PullRequest
1 голос
/ 16 июля 2011

Ошибка Get '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;
        }
    }
}

Ответы [ 3 ]

3 голосов
/ 16 июля 2011

Да; это нормально. За исключением инициализаторов полей, код должен быть в методе. Это не инициализатор поля.

Либо присвойте a=1; в производном конструкторе, либо создайте перегруженный конструктор и передайте 1 конструктору базового типа.

Так что либо:

public test() {
    a = 1;
}

Или:

protected Class1(int a) {
    this.a = a;
}
...
public test() : base(1)
{}
2 голосов
/ 16 июля 2011

Ошибка в том, что a=1 отсутствует в теле метода.

0 голосов
/ 16 июля 2011

Если вы хотите, чтобы при создании тестового объекта значение a равнялось 1, вы должны поместить a = 1 в конструктор для тестового класса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...