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

如何正确构建并赋值C#中的AddOnTypeV17[][]二维枚举数组?

问题解决思路及修正代码

错误原因分析

  • CS0029 类型不匹配:你声明的返回值是List<AddOnTypeV17>[][],但方法要求返回AddOnTypeV17[][],二者无法隐式转换,不需要用List,直接使用枚举的二维数组即可。
  • CS1922 枚举初始化错误:AddOnTypeV17是枚举类型,不是集合,不能用集合初始化器{ ... }创建实例。要生成枚举值的数组,需用new AddOnTypeV17[] { ... }语法。

修正后的代码

// 赋值RequiresAllOf
RequiresAllOf = GetAddons();

// 修正后的GetAddons方法
private AddOnTypeV17[][] GetAddons()
{
    // 外层数组对应<RequiresAllOf>下的多个<RequiresOneOf>节点
    // 内层数组对应单个<RequiresOneOf>下的多个枚举值
    return new AddOnTypeV17[][]
    {
        // 单个<RequiresOneOf>节点,包含SCAHP枚举值
        new AddOnTypeV17[] { AddOnTypeV17.SCAHP }
    };
}

序列化对应关系说明

根据属性的XML序列化特性:

  • 外层的AddOnTypeV17[][]会被序列化为<RequiresAllOf>节点
  • 每个内层AddOnTypeV17[]会被序列化为<RequiresOneOf>节点
  • 枚举值SCAHP会根据XmlEnumAttribute序列化为SC-A-HP

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 04:40:54