在C#中,我应该使用UINT或INT来实现永远不应该是负面的值吗? [复制
-
23-10-2019 - |
题
可能的重复:
我是否应该在C#中使用UINT进行不负面的值?
假设那个 MaxValue
(:))2^31 vs 2^32没关系。一方面使用 uint
看起来不错,因为它是自我解释的,它表明(并承诺?)某些价值可能永远不会是负面的。然而, int
更常见,演员通常不便。一个人可以使用int并始终用代码合同补充它(每个人现在已经移至.NET 4.0,对吗?)标准库确实使用 int
为了 Length
和 Size
属性,即使这些属性绝不应该是负面的。所以,对你来说很明显 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;
}
}
不隶属于 StackOverflow