我正在构建一个库的设计,并且由于我不熟悉 C#,我想创建一个结构(值类型)并让它在内部进行管理。这意味着当有人为所述结构分配值时,它会(在这种情况下)验证值的长度并对值进行一些清理(即变成whitespace
等underscores
)。
它对我所错的值的控制。如果它是一个普通的类,我只会将一个事件附加到分配并执行所有验证,但是对于我要创建的对象来说,一个类会是过度杀伤力,我认为一个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# 设计,但如果它是一个类对象我会做的。基本上我不需要实例化它(因此我没有使用类)并且它应该保持一个值。我只是想知道我是否可以将值验证附加到结构,如果我可以怎么办?如果不是,那么让值类型对其分配的值有限制的最佳方法是什么?