gpt4 book ai didi

c# - 控制 Struct 对象的大小和范围

转载 作者:太空宇宙 更新时间:2023-11-03 19:18:50 24 4
gpt4 key购买 nike

我正在构建一个库的设计,由于我不熟悉 C#,我想创建一个结构(值类型)并让它在内部进行管理。这意味着当有人为所述结构分配一个值时,它会(对于这种情况)验证值的长度并对值进行一些清理(即将 whitespace 转换为 underscores等)。

它控制我所欠缺的值(value)。如果它是一个普通的类,我只会将一个事件附加到赋值并执行所有验证,但是作为一个类对于我要创建的对象来说太过分了,我想出了一个 struct 对象将是最合适的。

结构设计,可能不干净,但我目前拥有的:

public struct ST_Keytip
{
private string _value;

[DefaultProperty]
public string FooBar
{
get { return this._value; }
set
{
if (len(value) < 1 or len(value) > 3)
{
throw new exception("blah blah blah....PUKE!!!!")
}
else
{
this._value = value;
}
}
}
}

我确定这不是一个干净的 C# 设计,但如果它是一个类对象,我会这样做。基本上我不需要实例化它(因此我不使用类)并且它应该有一个值。我只想知道我是否可以将值验证附加到结构,如果我可以如何?如果不是,那么获得对其分配的值有限制的值类型的最佳方法是什么?

最佳答案

可变结构是邪恶的。你应该像躲避瘟疫一样避开它们。

通常,如果有令人信服的理由/需要这样做,并且当您完全了解使用结构的所有后果时,最好只在类上使用结构。

对于您的情况,尽管您的对象很小,但它应该是一个类。

关于c# - 控制 Struct 对象的大小和范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14061106/

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