无法访问派生类中的公共属性

fai*_*gir 0 c# inheritance abstract-class derived-class

我有一个abstract class由另一个类继承的如下:

public abstract class Employee
{
        public string name{ get; set; }
        public string age { get; set; }
}

public class OtherEmployee : Employee
    {
        public OtherEmployee()
        {
        }

        public string specialField{ get; set; }
    }
Run Code Online (Sandbox Code Playgroud)

这就是我正在做的事情,不知怎的,没有完成它:

Employee otherEmployee= new OtherEmployee();
otherEmployee.specialField = "somevalue";
Run Code Online (Sandbox Code Playgroud)

我没有获得访问权限specialField,而所有属性Employee都是可访问的.我知道这是一个微不足道的问题,但我在这里遇到了障碍.

ger*_*rmi 5

Employee不知道specialField,只是OtherEmployee.您需要将其强制转换为正确的类才能使用specialField.

Employee otherEmployee = new OtherEmployee();
Run Code Online (Sandbox Code Playgroud)

This doesn't give you an OtherEmployee but an Employee. To be able to use specialField do something like this:

(otherEmployee as OtherEmployee).specialField = yourValue;
Run Code Online (Sandbox Code Playgroud)