如何正确构建并赋值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
相关产品推荐
相关产品推荐

