【问题标题】:Should I use uint if my function is logically intended to return only natural numbers?如果我的函数在逻辑上只返回自然数,我应该使用 uint 吗?
【发布时间】:2011-09-08 02:19:23
【问题描述】:

让我们考虑一个函数,它获取一个人的出生日期并返回他的年龄(以整年为单位)。如果日期在未来,它会引发异常。它应该返回什么类型 - uint 还是 int? uint 作为一种自然约束似乎是合乎逻辑的。还是使用更常用的 int 更好?

【问题讨论】:

  • 那为什么不ushort?或者你希望有人能活 40 亿年?或者byte 怎么样?那肯定会涵盖一生。 (使用int。)
  • @anthony-pegram,我希望我们的科学能够让我们在 40 亿年后相遇,我相信 C# 2billions.0 会如此酷,值得等待 ;-)

标签: c# sql coding-style types unsigned


【解决方案1】:

无符号数字不符合 CLS,因此一般来说:不,不要使用它们。
当然不是在公共接口中。

【讨论】:

    【解决方案2】:

    是的,使用 uint,因为 uint 允许更大范围的数字,大约是 2 倍的范围,所以如果你所有的数字都是正数,那么它们是大的使用 uint,但如果你认为它们可能是负数并且它们永远不会很大( 1000000 很大)然后使用 int ,因为这对于变量值更安全且防错。

    【讨论】:

      猜你喜欢
      • 2012-11-01
      • 2022-01-03
      • 1970-01-01
      • 2015-06-04
      • 1970-01-01
      • 2012-07-18
      • 2011-09-15
      • 2017-06-11
      • 2021-10-22
      相关资源
      最近更新 更多