繁体   English   中英

在属性集块中执行参数/边界检查

[英]Performing Argument / Bound Checking in Property Set Block

我有一个字节数组属性,必须具有一定的长度。 我很想在属性的set块中放入一个检查,如果长度不正确,该检查将抛出ArguementOutOfRange异常。

private const int MY_ARRAY_LENGTH = 25;
private byte[] m_myArrray;
public byte[] MyArray
{
   get
   {
     return m_myArray
   }
   set
   {
      if (value.Length != MY_ARRAY_LENGTH)
      {
         throw new ArgumentOutOfRange();
      }
      m_myArray = value;
   }

这是这种边界检查的最佳实践吗?

我认为没有问题。 实际上,由于它保护了对象的内部状态,因此它似乎似乎是最好,最合适的选择。

唯一不重要的变化是可能在异常内提供更多信息(例如,参数名称-'值',范围-'25的长度')。

另外,我没有任何特定的链接/框架,但您可能会找到一种声明式样式机制,以一致的方式自动处理参数检查。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM