从基类

时间:2015-07-29 16:00:57

标签: c# static static-methods

我有一个班级员工,我有一个静态功能,带有计数员工,并计入员工类型(例如老师,助理老师,私人助理等)。为此,我有静态课程,我有一个我希望访问基类静态方法的每个子类内的员工数和静态计数。

class Employee{
    private static int emp;
    //...code

    static void IncreaseEmployeeCount()
    {
        emp=emp+1;
    }

}

class Teacher : Employee{
    private static int tchr;

    //...code

    static void IncreaseTeacherCount()
    {
        tchr = tchr + 1;
    }
}

如何使用子类访问基类静态方法。它尝试使用以下但失败并出现编译时错误:

Teacher teacher = new Teacher();
teacher.IncreaseEmployeeCount();
  

' Employee.IncreaseEmployeeCount()'由于其保护级别而无法访问

添加public访问级别仍会出错:

  

会员' Employee.IncreaseEmployeeCount()'无法使用实例引用访问;使用类型名称来限定它

2 个答案:

答案 0 :(得分:3)

应该是Employee.IncreaseEmployeeCount()Teacher.IncreaseTeacherCount()。请记住这些是静态方法,因此它们不绑定到实例。您只需通过ClassName.StaticMethod()

拨打电话即可

答案 1 :(得分:0)

作为静态方法,您无法通过类的实例访问它。你这样做

Teacher.IncreaseEmployeeCount();

Notes原始样本有其他编译错误:

  • 基础课程'方法需要声明为public
  • 对齐返回方法的主体,因为它被声明为int,应该是voidreturn {something};