是否可以在C#中使用别名数组类型?
|
我正在尝试使用自定义异常类型进行一些序列化/反序列化工作。此类型的字段定义为:
private object[] resourceMessageParams;
我已经有了一些不错的强类型代码,并带有一些Linq表达式魔术,但是我想做得更进一步,并执行以下操作:
using ResourceMessageParamsType = object[];//<-- \"Identifier expected\" error here
/*...*/
private ResourceMessageParamsType resourceMessageParams;
/*...*/
this.resourceMessageParams =
(ResourceMessageParamsType)serializationInfo.GetValue(
ReflectionHelper.GetPropertyNameFromExpression(() =>
resourceMessageParams), typeof(ResourceMessageParamsType));
代替这个:
(object[])serializationInfo.GetValue(
ReflectionHelper.GetPropertyNameFromExpression(() =>
resourceMessageParams), typeof(object[]));
为了适应将来可能更改此字段的类型,因此在别名定义中只需更改一次即可。但是,编译器在using ResourceMessageType = object[];
中的object
处停止,抱怨期望使用标识符。更改为Object[]
会有所帮助,但是这次括号以相同的错误消息突出显示。
有没有一种方法可以为c#中的数组类型定义别名?
没有找到相关结果
已邀请:
4 个回复
席陋临拈
标识符=名称空间或类型名称; 这显然没有说明允许使用数组的任何内容。 (有关如何定义名称空间或类型名称的信息,请参阅第100页。)
弦砂牧扁
窃誓额
铰齐插
并不是说我假装理解此“保护序列化代码以防止类定义可能发生的更改”。 接口将是一种更清洁的方法,您是否考虑过泛型? IMO综合单元测试将确保,如果有人更改了别名类型,则所有反序列化代码仍然有效。