作为索引的无符号数字与有符号数字

2024-01-21

在 .Net 中使用带符号数字作为索引的理由是什么?

在 Python 中,您可以通过发送负数从数组末尾开始索引,但在 .Net 中并非如此。 .Net 稍后添加这样的功能并不容易,因为它可能会在索引上使用特殊规则(是的,一个坏主意,但我猜它会发生)来破坏其他代码。

并不是说我曾经需要索引大小超过 2,147,483,647 的数组,但我真的无法理解为什么他们选择有符号数字。

难道是因为在代码中使用带符号的数字更正常吗?

编辑:我刚刚找到这些链接:

C/C++ 中无符号迭代的危险 http://eli.thegreenplace.net/2010/06/11/the-perils-of-unsigned-iteration-in-cc/

Edit2:好的,Matthew Flaschen 发布的线程中还有其他一些很好的理由:

  • 历史原因,因为它是类 C 语言
  • 与 c 互操作

这可能与使用低于 0 的值作为无效索引的悠久传统有关。如果未找到该元素,诸如 String.IndexOf 之类的方法将返回 -1。因此,返回值必须有符号。如果索引使用者需要无符号值,则必须 a) 检查并 b) 强制转换该值才能使用它。对于签名索引,您只需要检查即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

作为索引的无符号数字与有符号数字 的相关文章

  • 包括 Oracle 中的等效项

    在 SQL Server 中你可以这样写 create index indx on T1 A B INCLUDE C D E 有没有办法在 Oracle 中做同样的事情 Refs http msdn microsoft com en us
  • C#:如何在虚拟模式下有效过滤(隐藏)ListView 项目?

    C 如何在虚拟模式下有效过滤 隐藏 ListView 项目 我正在寻找一种在虚拟模式下过滤 隐藏 显示 ListView 中的项目的方法 我将我的项目缓存在列表视图项目数组中 如何有效地使其在按下过滤按钮时仅显示特定的列表视图项目 然后在按
  • LINQ to SQL 选择“按多列区分”并返回整个实体

    我正在使用第三方数据库 需要为我正在研究的特定市场选择一组不同的数据 每个市场的数据都是相同的 因此将其全部引入是多余的 并且我不想硬编码围绕它的任何逻辑 因为我们正在与供应商合作解决问题 但我们需要一个修复程序与供应商合作修复以及数据库当
  • 如何将“从文件夹打开网站”转换为基于 csproj 的“ASP.NET Web 应用程序”项目

    标题几乎说明了一切 我有一个已构建并签入 vss 的 网站 要打开它 我们将文件 gt 打开 gt 网站 然后选择文件夹 这种技术可以让您获得一个项目 但没有 cs vb proj 文件 有没有简单的方法可以将其转换为 ASP NET We
  • 在 C++\Win32 中编辑控件文本更改消息

    与 NET for C Win32 中的 TextChanged 属性匹配的消息是什么 假设你正在谈论编辑控件 http msdn microsoft com en us library bb775458 VS 85 aspx EN CHA
  • 在 WinForms 中显示输入对话框

    我想在我的 WinForm 应用程序中显示输入模式 我浏览过网络 但没有找到执行此操作的良好模式 我知道我必须创建另一个表单 并使用 ShowDialog 方法 你是对的 请注意 模式对话框在关闭时不会自动处理 与非模式对话框不同 因此您需
  • 使 C# 源代码作为脚本运行?

    我正在编写一些脚本 我发现有时更多的功能会更好 就像持续尝试以 1 秒延迟删除文件并使其可移植的能力一样 我今天花了一些时间将 bat 脚本翻译为 bash 我知道我可以使用 php 或 python 但我非常喜欢静态 编译时间检查 有没有
  • 为什么 -INT_MIN = INT_MIN 在有符号的二进制补码表示中?

    我仍然没有找到为什么最低的有符号负数没有等效的有符号正数的原因 为简单起见 我的意思是 3 位二进制数 100 是 4 但我们不能有符号格式的正 4 因为我们不能 它溢出了 那么我们如何知道补码 1000 是 4 1000 0000 是 1
  • Visual Studio 项目的依赖关系图

    我目前正在将一个大型解决方案 约 70 个项目 从 VS 2005 NET 2 0 迁移到 VS 2008 NET 3 5 目前我有 VS 2008 NET 2 0 问题是我需要将项目一一移动到新的 NET 框架 确保没有 NET 2 0
  • C# 有没有办法制作时间范围列表?可配置

    有没有办法列出时间范围 例如 包含以下内容的列表 中午 12 00 至下午 1 00 下午 1 00 至 2 00 ETC 其中划分部分是配置 我认为你必须使用日期时间并将其除以一定的数字 在本例中为一小时 有人可以指出我正确的方向或给我提
  • 会话对象不更新 ASP.NET

    我在代码的一个时刻设置了一个会话对象 Session my name Dave 稍后在我的代码中 我给用户一个更新此对象的机会 Session my name TextBox1 Text 我重新加载页面并显示一个简短的 hello 语句 如
  • 如何让 NHibernate 缓存获取的子集合?

    我有一个相当简单的条件查询来获取子集合 如下所示 var order Session CreateCriteria
  • 实体框架 - Linq NOT IN 查询

    我见过其他几个帖子提出类似的问题 但坦率地说我很困惑 我正在尝试在 EntityFarmework 和 Linq 中执行以下 sql 语句 但无法让 NOT IN 和 UNION 工作 SELECT LmsTeam FROM LmsTeam
  • 字节码相对于本机代码有哪些优点? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ServiceStack 验证并不总是触发

    因此 我尝试使用 RavenDB 和 ServiceStack 构建端到端集成测试套件 但遇到了一个非常奇怪的问题 即验证无法对某些请求运行 这真的很奇怪 我不确定我做错了什么 我正在使用 NCrunch 有时测试通过 有时失败 希望这是一
  • 如何保存具有多个缩进设置的XmlDocument?

    我需要保存一个XmlDocument以适当的缩进归档 Formatting Indented 但有些节点及其子节点必须排在一行 Formatting None 从那时起如何实现这一目标XmlTextWriter接受整个文档的设置 在 Ahm
  • 消息在事务处理时未到达 MSMQ

    我在本地计算机中创建了一个私有 MSMQ 我使用以下 C 代码将消息发送到队列 当我将队列更改为事务性队列时 消息未到达 MSMQ 但是 Send 方法中没有抛出异常 我需要做出什么改变才能使其发挥作用 using System using
  • docs.microsoft.com 上的 .NET 平台扩展是什么?

    Microsoft Docs 中有一个框架级导航元素 称为 NET 平台扩展 https learn microsoft com en us dotnet api index view dotnet plat ext 2 1 它包含有关最近
  • SQL 注入在 winform 中有效吗?

    我正在用 C 制作一个 Windows 软件 我读过关于sql injection但我没有发现它适用于我的应用程序 SQL 注入在 winform 中有效吗 如果是的话如何预防 EDIT 我正在使用文本框来读取用户名和密码 通过使用 tex
  • 通过网络共享的 SQL CE

    我之前见过这个问题 但找不到关于什么是可能 不可能以及什么解决方法可能可用的明确解释 我有一个现有的 C 应用程序 它使用 SQL CE 来存储本地信息 该数据库只能由单个应用程序访问 并存储在用户的 appdata 文件夹中 某些环境将

随机推荐

  • SSRS 2005 缺少 Microsoft.ReportingServices.Interfaces.dll

    我在 c program files SQL Server 90 Tools Binn 中缺少此 DLL 引用 我假设这是因为我没有安装 2005 客户端 我安装了 2005 年的所有服务 数据库实例 报告服务实例 SSAS 和 SSIS
  • 持续更新文件

    最终 我需要将 Spotify API 中的信息提供给应用程序 以显示 当前歌曲 信息 包括提示时间 因此需要不断轮询 API 并更新应用程序轮询的数据源 我仍在尝试从流而不是文件的角度来思考数据 所以我想出了这个小实验来了解如何不断更新文
  • PM2 - 语法错误:严格模式之外尚不支持块范围声明

    我目前正在 Ubuntu 服务器上安装 NodeJS 服务 该应用程序是用 CoffeeScript 编写的 并且可以自行运行良好 这就是我设置项目的方式 cd test project nvm use v4 9 1 npm install
  • Zeroinfl“系统在计算上是奇异的”,而预测变量没有相关性

    我正在尝试对一年中工人缺勤天数的计数数据 因变量 进行建模 我有一组预测变量 包括有关工人 有关他们的工作等的信息 其中大多数是分类变量 因此 需要估计大量系数 83 但由于我有超过 600 000 行 我认为这应该不会有问题 此外 我的数
  • 当你调用一个包含yield的函数时会发生什么?

    I read here https stackoverflow com questions 19302530 python generator send function purpose 60042174 noredirect 1 comm
  • 如何创建支持 Ruby 的 shell 命令?

    我正在创建一个 gem 我希望能够在其中使用 shell 命令来执行 gem 中的功能 在更简单的上下文中 我需要创建一个 shell 脚本 该脚本在触发 shell 命令时执行带有选项的 Ruby 函数 做到这一点最简单的方法是什么 例如
  • std::tuple 和标准布局

    如果所有成员std tuple are of 标准布局类型 https stackoverflow com a 7189821 734069 就是它std tuple本身标准布局 用户定义的复制构造函数的存在使其变得不平凡 但我想知道它是否
  • 如何显示wordpress页面内容?

    我知道这真的很简单 但由于某种原因我没有想到 而且谷歌今天也没有帮助我 我想输出页面内容 该怎么做 我以为是这样的 Marc B 感谢您的评论 帮助我发现了这一点 p Sorry no posts matched your criteria
  • 是否可以扁平化 MongoDB 结果查询?

    我的 MongoDB 集合中有一个深度嵌套的集合 当我运行以下查询时 db countries findOne data country neighbor name 1 id 0 我最终在这里得到这个嵌套结果 data country ne
  • 使用 ImageMagick 打开随机 jpeg 的 Shell 脚本

    我有一大堆 jpeg 我想编写一个 shell 脚本 随机选择 5 个图像 然后使用 imageMagick 将它们放入蒙太奇中 然后打开这个蒙太奇文件 我希望这个过程每 10 秒发生一次 我试过这个脚本 for f in jpg do s
  • Windows上构建的PyQt:DLL加载失败:找不到指定的过程

    我尝试在 Windows 7x64 上从源代码 下载了二进制 Qt 5 8 0 构建 PyQt 我通过本教程做到了 https stackoverflow com a 40779370 2726900 https stackoverflow
  • 错误:条目中的空值:incrementalFolder=null

    我在 gradle 构建中遇到以下错误 错误 条目中的空值 incrementalFolder null 我怎样才能解决这个问题 我同意马拉维略 辛加的回答 这似乎是 gradle 中的一个错误 我找到了另一个解决方案here https
  • 如何按给定数量复制数组中的对象,ES6 及更高版本

    我正在尝试转换一个对象数组 如果对象属性数量大于 1 我将返回重复的对象 const objects id 1 name Scissor price 2 quantity 3 id 2 name Hat price 6 5 quantity
  • 将共享库编译成程序?

    我编写了一个程序 它使用我的系统上安装的共享库 这个库很少安装在其他系统上 如何编译我的程序以便不需要在其他系统上安装该库 我有可用的库的源代码 最好的办法是什么 其他系统当然具有相同的架构和操作系统 将其编译为静态库并将其链接到可执行文件
  • 在 Ubuntu 12.04 中编译和链接 OpenCV

    我刚刚花了令人沮丧的很长一段时间让 openCV 在 Ubuntu 12 04 中正确链接 并认为我会分享我学到的东西以造福他人 OpenCV 现已在 Ubuntu 存储库中提供 如下所示 sudo apt get install libo
  • 限制 AMD OpenCL 的 GPU 数量

    是否有解决方案限制 AMD OpenCL 平台使用的 GPU 数量 对于 NVIDIA 平台 只需设置环境变量即可CUDA VISIBLE DEVICES限制 OpenCL 可用的 GPU 集 编辑 我知道 我可以使用更少的设备创建一个上下
  • 使用 CodeIgniter 创建 XML

    我在 Codeigniter 中使用此代码来生成 XML public function get cuisine this gt load gt dbutil sql select from cuisine query this gt db
  • 如何退出运行循环?

    所以 我有一个 Swift 命令行程序 import Foundation print start startAsyncNetworkingStuff RunLoop current run print end 代码编译没有错误 异步网络代
  • 有哪些库可用于解析c++以提取类型信息

    我正在寻找一种解析 C 代码以检索有关类的一些基本信息的方法 我实际上不需要代码本身的太多信息 但我确实需要它来处理宏和模板等内容 简而言之 我想提取代码的 结构 即您将在 UML 图中显示的内容 对于代码库中的每个类 结构 联合 枚举 t
  • 作为索引的无符号数字与有符号数字

    在 Net 中使用带符号数字作为索引的理由是什么 在 Python 中 您可以通过发送负数从数组末尾开始索引 但在 Net 中并非如此 Net 稍后添加这样的功能并不容易 因为它可能会在索引上使用特殊规则 是的 一个坏主意 但我猜它会发生