gpt4 book ai didi

c# - 限制属性的字符串长度

转载 作者:行者123 更新时间:2023-11-30 14:04:15 24 4
gpt4 key购买 nike

这个问题是在我试图找出一个更大的问题时出现的,为了简单起见,我将其省略。

我必须在 C# 中表示某种数据结构。它是一种用于与外部系统通信的协议(protocol)。因此,它具有一系列具有预定义长度和整数(或其他更复杂的数据)的字符串。让我们假设:

SYSTEM : four chars
APPLICATION : eight chars
ID : four-byte integer

现在,我首选的表示方式是使用字符串,所以

class Message
{
string System {get; set; }; // four characters only!
string Application {get; set; }; // eight chars
int Id {get; set; };
}

问题是:我必须确保字符串的长度不超过预定义的长度。此外,这个标题实际上会有十分之一的字段,这些字段会不时更改(我们仍在决定消息布局)。

描述这种结构的最佳方式是什么?例如,我想使用带有数据描述的 XML 并使用反射来创建一个遵循实现的类(因为我需要以编程方式访问它)。

而且,正如我所说,还有更多麻烦。我有其他类型的数据类型限制字符/数字的数量......

最佳答案

对于初学者:整个长度问题。这很容易通过不使用自动属性来解决,而是声明您自己的字段并以“老式”方式编写属性。然后,您可以在 setter 中验证您的要求,并抛出异常或丢弃新值(如果无效)。

对于不断变化的结构:如果不能只进入并更改类,您可以编写一个解决方案,它使用字典(好吧,也许您要存储的每种数据类型一个)将名称与值相关联.添加某种文件(可能是 XML)来描述允许的字段、它们的类型和验证要求。

但是,如果它只是因为您尚未决定最终结构而发生变化,我可能更愿意只更改类 - 如果您在部署应用程序时不需要那种动态结构,它看起来像浪费时间,因为与更改类相比,您最终花在编写动态内容上的时间可能更多。

关于c# - 限制属性的字符串长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2382716/

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