c# - 使用无符号原始类型

标签 c# primitive-types

大多数时候我们表示永远不会小于 0 的概念。例如声明长度,我们这样写:

int length;

这个名字很好地表达了它的用途,但是你可以给它赋负值。似乎在某些情况下,您可以通过这样写来更清楚地表达您的意图:

uint length; 

我能想到的一些缺点:

  • 无符号类型(uint、ulong、ushort)不符合 CLS,因此您不能将其用于不支持此功能的其他语言
  • .Net 类大部分时间使用有符号类型,因此您必须强制转换

想法?

最佳答案

“身在罗马,入乡随俗。”

虽然理论上在适用的情况下使用无符号值具有优势,因为它使代码更具表现力,但这在 C# 中根本没有实现。我不确定为什么开发人员最初没有设计接口(interface)来处理 uint 并使类型符合 CLS,但现在火车已经离开车站了。

由于一致性通常很重要,因此我建议采用 C# 方式并使用 int

关于c# - 使用无符号原始类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33852/

相关文章:

c# - 添加自定义 SoapClient header

c++ - 把 "const"类型前面的 "primitive"去掉会更好吗?

c# - 优化 Visual Studio 解决方案构建 - 将 DLL 文件放在哪里?

c# - 在 try catch block 中循环

c# - 如何将完整的对象添加到 Serilog Azure 表存储接收器,该对象未在消息中写出?

C++ 原始类型初始化 vs.对象初始化

java - Java 中的数据类型及其表示

c# - Telerik RadGrid 使用多列

c - #define 类函数宏中的数据类型

scala - 在 Scala 中增加 Short 类型变量的最简洁方法是什么?