问题标签 [unchecked]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - unchecked() 的奇怪结果,可能的编译器错误?
以下代码段的计算结果为零:
然而,如果你这样做:
结果是(你会猜到这个吗?)int.MinValue
。这个事实本身就很奇怪[见下文],但我的印象unchecked
是强制编译器发出假装不知道转换肯定会失败和/或发生一些溢出的代码。换句话说,它应该给出与编译器不知道所涉及的值时相同的结果(假设它是在禁用“检查算术溢出”的情况下编译的)
那么,这里发生了什么?难道我的理解unchecked
错了?
根据 C#/.NET 标准,其中一个结果是否“错误”?
编辑:int.MinValue
很容易解释:cvttsd2si
当有溢出但异常被屏蔽时给出 0x80000000。这是 JIT 编译器使用的指令,可以在反汇编窗口中看到。但这并不能解决问题的任何部分。
根据 ECMA 334(C# 2 规范),unchecked
关键字应始终截断,因此在这两种情况下结果都应为零:
但事实并非如此,第二个给出int.MinValue
. 这对我来说仍然像编译器错误。
jquery - 当每个被选中时,JQuery 更改单选按钮的选中状态
我在搜索组中有三个单选按钮:邮编、城市和县。单击其中一个单选按钮时,如何切换组中所有单选按钮的选中状态?
我正在使用 Jquery 1.6.2。提前谢谢你,阿提拉
java - Java:对 compareTo(T) 的未经检查的调用
编译上面的代码会产生 4 个警告:
我尝试了更多变体,但警告仍然存在。编写和调用上面的 test.compare 方法的正确方法是什么?
谢谢!
PS:test.compare 只是一个例子;我不需要这样的功能;但我需要实现一个函数,比如 test.compare,需要在其签名中包含 Comparable 实现对象。
PS2:我已经编程了 25 多年,我什至在大约 10 年前编写了一段时间的 Java,但是现在使用 Java(我的工作需要)让我发疯。对于有经验的程序员来说,学习 Java 比看起来要难得多。那里有很多关于学习 Java 的东西,其中 99% 充其量是过时的,或者是为了给编程新手排名(即非常冗长),最坏的情况是彻头彻尾的垃圾……我还没有找到关于Java 将让我在上述问题的答案中快速归零。
java - java泛型,未经检查的警告
这是 oracle 页面中教程的一部分:
考虑以下示例:
List<Number>
详细来说,当静态类型为 的 List 对象 l被分配给另一个具有不同静态类型的 List 对象 ls时,就会发生堆污染情况, List<String>
// 这是来自 oracle 教程
我的问题是为什么是静态类型List<Number>
而不仅仅是List
?后来另一个问题来自我的研究代码:
为什么在这段代码中而不是elArray = new ListaConPI[numVertices+1]
我们不会写elArray = new ListaConPI<Adyacente>[numVertices+1]
?
非常感谢 !
c# - unchecked block doesn't work with BigInteger?
Just noticed that the unchecked context doesn't work when working with a BigInteger, for instance:
Any idea why that's the case? Is there something special with the way big integers are converted to other primitive integer types?
Thanks,
php - Checkbox选中的值通过几个php页面
所以我试图创建一个复选框,我可以传递它的值或将它的值存储在 cookie 中,这样我就可以在多个不同的页面上使用它。
目前我有这个:
它只是将cookie设置为1并且当我取消选中复选框时不允许它变回零,有什么想法吗?
java - 未经检查的演员表:在这种情况下有没有办法避免它?
我有一种情况导致未经检查的演员表警告。我知道我可以使用抑制警告,但我的直觉告诉我有一种方法可以通过更改我编写此代码段的方式来避免它。然而,我似乎无法让解决方案浮出水面,并且可以用一双新的眼睛来做。
该函数使用多个列表调用,每个列表都包含一个扩展 Bus 的类。busToAdd 上使用了几个函数,它们是 Bus 的一部分,因此使用类型 E 将不起作用。
关于如何在不必抑制警告的情况下对其进行重组的任何建议?
编辑:发现我可以将 E 用于 busList,但最终不得不强制转换我分配给它的总线,这会导致相同的警告。我可以尝试将 E 用于所有用途而不是 Bus,我会在测试后更新。
c# - 在什么情况下我会将操作指定为未选中?
例如:
这在哪些方面有用?你能想到什么吗?
java - Java 未经检查的操作强制转换为泛型
我想知道为什么以下会发出有关不安全/未经检查的操作的警告:
演员阵容错了吗?我无法理解我在这里缺少什么。
PS我不想摆脱警告,我想了解不安全的操作。
谢谢!
c# - 为什么我应该明确地用“未选中”包围?
有没有人能解释我这种奇怪的行为?
注意:这是一个空的控制台应用程序,没有启用算术检查(默认情况下)。提前谢谢大家。
编辑:我应该足够清楚,但不是全部。
我知道一个字不能装进一个字节。但是,默认情况下,C# 程序允许某些“危险”操作,主要是出于性能原因。
同样,我可以将两个大整数相加,并且完全没有溢出。
我想知道上面的编译时错误:b1 cast/assignment 已编译,b2 无法编译。显然没有区别,因为两者都是 Int32 具有相同的值。
希望现在很清楚。