gpt4 book ai didi

C# 基于另一个属性值的不同属性

转载 作者:行者123 更新时间:2023-11-30 15:38:58 25 4
gpt4 key购买 nike

我正在编写一个消息处理器。处理器通过数据流接收消息。消息可能有不同的类型,但所有类型都有一些共同的属性,例如长度、校验和等。此外,每种类型的消息也有自己的属性。

对于它的实现,我正在考虑创建一个包含公共(public)属性的类(比如消息类),并从消息类继承来为每种消息类型创建单独的类。首先,我想知道在这种情况下继承是否是一个好的解决方案?或者还有其他更好的方法吗?

此外,我想将原始消息传递给一个方法,该方法将相应的属性返回给我消息(包括公共(public)和个人)。由于各个属性会根据消息类型发生变化,我如何才能实现只返回一个对象的方法?为了更好地解释,我不希望它为每种消息类型返回不同的对象。我宁愿有一个通用对象,它具有基于另一个属性(如“MessageType”)的某些特定属性,如下所示:

Message Class:
--- Length
--- Check-sum
--- MessageType
--- Property A
--- Property B
.
.
.
--- Property Z

属性 A 到 Z 是单独的属性,它们的数量和类型可能因“MessageType”方法而异。

提前致谢。

最佳答案

您问题的前半部分听起来继承非常合适。但是,在了解您需要获取公共(public)属性和单个属性的列表后,它似乎不太适合。

最终,表示此信息的最佳方式取决于您打算用它做什么。

如果您想要一个返回两种信息类别的通用对象,键/值解决方案似乎是合理的,至少对于各个属性而言。类似的东西:

class Message
{
CommonProperties Common { get; set; }
// Property Name / Property Value. Alternatively use a Tuple to also hold the type if needed.
Dictionary<string, object> IndividualProperties { get; set; }
}

如果您提供有关如何您希望进一步使用信息的更多详细信息,我们可以尝试提供更准确的指导。

关于C# 基于另一个属性值的不同属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10921984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com