可能的重复:
我是否应该在C#中使用UINT进行不负面的值?

假设那个 MaxValue (:))2^31 vs 2^32没关系。一方面使用 uint 看起来不错,因为它是自我解释的,它表明(并承诺?)某些价值可能永远不会是负面的。然而, int 更常见,演员通常不便。一个人可以使用int并始终用代码合同补充它(每个人现在已经移至.NET 4.0,对吗?)标准库确实使用 int 为了 LengthSize 属性,即使这些属性绝不应该是负面的。所以,对你来说很明显 int 比更好 uint 大多数时候,还是更复杂?

如果您发现这个问题没有明确指出,请询问问题。

谢谢。

编辑: 是的,看起来像个骗子。但是,还有一个额外的小问题:您能给我一个很好的例子,说明如何使用代码合同 /声明语句在此特定情况下补充属性 /函数,而当值可能不为负时?

有帮助吗?

解决方案

请参阅此处 以前的答案.

其他提示

简短的答案是。您可能希望按以下方式实施。

private int _length;
public int Length
{
    get { return _length; }
    set
    {
        if (value < 0)
        {
            throw new InvalidOperationException("Length must be always positive. Please make sure the value is positive value.");
        }
        this._length = value;
    }
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top