You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中嵌套在employee子类中的faculty子类无法访问如何解决?

解答

不需要删除employee类,你的问题本质是C#嵌套类的访问规则问题,有两种常用的解决方式:

问题根源

你将faculty、staff类定义为了employee类的嵌套内部类,按照C#语法规则,访问嵌套类时必须显式指定外层类的名称作为前缀,无法直接用嵌套类名调用。

方案1:保留现有嵌套结构,修改调用代码

如果不想调整现有类的定义结构,只需要修改实例化代码,加上外层类employee的前缀即可:

public class Program
{
    public static void Main()
    {
        // 嵌套类需要使用 外层类名.嵌套类名 的格式访问
        employee.faculty mem = new employee.faculty("Ray");
    }
}

方案2:调整类结构(更符合面向对象设计,更推荐)

从业务逻辑来看,faculty、staff本身就是employee的子类,完全没有必要嵌套在employee类内部,直接将两个子类移到employee类外平级定义即可:

public class employee : person
{
    // 这里可以保留employee类的通用成员和逻辑
}

// 移出employee类,作为平级的子类定义
public class faculty : employee
{
    public faculty(String facultyName)
    {
        name = facultyName;
    }
}
public class staff : employee
{
    public staff (String staffName)
    {
        name = staffName;
    }
}

调整后你原本写的实例化代码faculty mem = new faculty("Ray");就可以正常运行了。


内容的提问来源于stack exchange,提问作者Raffy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 07:06:03