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

如何处理C#中的抽象枚举?重写属性遇异常求助

解决C#抽象枚举属性的实现问题

解决方法

根据你当前类的实际功能,返回MissionBehaviorType枚举里的具体有效值即可,两种写法都适用:

  • 表达式体简洁写法:
public override MissionBehaviorType BehaviorType => MissionBehaviorType.Logic;

(如果你的类对应其他功能,把Logic替换成Other即可)

  • 传统get属性写法:
public override MissionBehaviorType BehaviorType { get { return MissionBehaviorType.Other; } }

错误原因解析

  1. VS自动生成的throw new NotImplementedException()只是占位代码,它仅用于提醒你需要自行实现属性的返回逻辑,运行时执行到此处必然抛出异常,因为没有返回实际的枚举值。
  2. 你写的return BehaviorType会触发无限循环:当外部访问这个属性的getter时,代码会再次调用BehaviorType的getter,相当于自身无限递归调用,直到栈内存耗尽,最终抛出栈溢出异常。
  3. BehaviorType是抽象属性,父类仅定义了该属性的接口要求,子类必须提供具体实现——也就是明确返回枚举中的某个有效值,不能仅保留占位代码或错误的自引用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 02:58:12