boxing相关内容

在为整数类型调用ToString时涉及拳击吗?

一个简单的问题: int a = 5;字符串str = a.ToString(); 由于 ToString 是System.Object的虚拟方法,是否意味着每次我为整数类型调用此方法时,都会发生装箱运动? 解决方案 您已经得到答案,告诉您,对于值类型覆盖 ToString()时,当没有装箱时您称呼它为好,但是有一些实际看到它的方法真是太好了. 采用类型 int?( Null ..
发布时间:2021-04-01 20:37:25 C#/.NET

拳击会导致性能问题吗?

我正在一个项目中,我们正在其中开发一种可编译为Java的语言.我们正在使用的框架(xtext)在其生成的代码中大量使用了boxing. 具体来说,如果您有如下声明: int i = 1; int j = 2; int k = i + j; 然后,编译后的代码如下: IntegerExtensions.operator_plus(((Integer)i), ((Integer)j)) ..
发布时间:2021-02-12 18:55:27 Java开发

如何用可以是多种特征对象的参数定义函数?

我正在尝试定义一个将引用作为参数的函数,并在引用的对象上调用 generic 方法,并传递一个具体值.我需要一种方法,要求传递给我的函数的参数的泛型类型是函数将与之一起使用的具体类型的特征.我似乎无法解决该怎么做. 我要实现的目标的一个最小示例: trait Vehicle {} trait Floating {} struct Boat; impl Vehicle for Boat ..
发布时间:2020-11-13 05:04:57 其他开发

为什么带有T:类约束的通用方法会导致装箱?

为什么将T约束为类的通用方法在生成的MSIL代码中会有装箱指令? 对此我感到非常惊讶,因为可以肯定的是,由于T被限制为引用类型,因此生成的代码不需要执行任何装箱操作. 这是c#代码: protected void SetRefProperty(ref T propertyBackingField, T newValue) where T : class { bool ..
发布时间:2020-11-13 04:51:30 C#/.NET

为什么(((object)(int)1).Equals((((object)(ushort)1)))产生false?

我遇到的情况是我有一个对象,我想检查与另一个对象的相等性。 / p> 公共静态布尔值等于(对象a,对象b) { 返回a。等于(b) ; } A当 a = 1(整数)时出现问题和 b = 1(超短(或基本上不是整数))。我想知道是否不应该得出true,但是它确实返回false ... 编辑 更糟糕的是: Hashtable ht = ..
发布时间:2020-10-30 05:57:34 C#/.NET

into_boxed_slice()方法有什么用?

看着 Vec 可用的方法,我偶然发现了 into_boxed_slice(self)-> Box [T] String 也有这样的方法( into_boxed_str(self))。为 Vec / String Deref 的有用性>可以将它们像共享切片(& [T] )一样对待,但是我看不到拥有切片( Box ),也许还有FFI。在少 ..
发布时间:2020-10-08 20:47:27 其他开发

VB.NET是否会“ If”?操作员原因拳击?

我们在VB / VB.NET中工作过的人看到了类似于以下可恶的代码: 昏暗的名字因为String = IIf(obj Nothing,“”,obj.Name) 我说“憎恶”出于以下三个简单原因: IIf 是函数,评估所有参数;因此,如果在上述调用中 obj 无效,则会抛出 NullReferenceException 。对于习惯于使用C#之类的短路三元运算 ..
发布时间:2020-10-08 00:04:51 其他开发

(取消)在Java中装箱原始数组

在Android Java世界中,是否有一种简便的方法(最好是一次调用)将 int 的数组转换为 ArrayList ; 然后返回?在ArrayList上调用 toArray()会返回 Integer 的数组-不完全是我想要的。 我可以轻松地手动执行一个循环(实际上已经做到了)。我想知道库/语言是否支持相同的语言。 编辑:谢谢,我已经写了自己的拳击手和拆箱手。我只是 ..
发布时间:2020-10-05 06:03:47 Java开发

自动装箱与静态数字

使用 Integer i = NumberUtils.INTEGER_ONE 代替 Integer i = 1 是否有价值?我不知道自动装箱背后会发生什么。 谢谢 解决方案 基本上它将被编译为: Integer i = Integer.valueOf(NumberUtils.INTEGER_ONE); 假定 INTEGER_ONE 被声明为 int 。 ..
发布时间:2020-10-05 04:20:52 Java开发

如何在Rust中创建盒装封闭向量?

以前一个问题被问到有关创建函数数组的问题,这些函数从中返回整数一个范围。最终的解决方案是将地图/集合放入 Vec 。 我有一个相似但又不同的情况,即我的闭包具有相同的签名但实现不同。我尝试过这样: 让xs:Vec = vec![ move |(x,y)| (y,x), 移动|(x,y)| (1-y,1-x), ]; 我得到的错误: 错误[E ..
发布时间:2020-10-02 23:18:05 其他开发

Upcasting如何保留派生类的属性?

静态void Main(string [] args) { 学生=新学生() { ID = 12, Name =“ Manu”, LastName =“ Shekar” }; Iregister x =学生; 学生新闻工作者= x作为学生; //Console.WriteLine(x.LastName); //取消注释会显示编译错误 Console.WriteLi ..
发布时间:2020-09-29 23:38:10 C#/.NET

使用“ Type”类型转换对象。 C#中的对象

到目前为止,对我来说,这个技巧有些麻烦。我想知道是否可以使用System.Type对象进行类型转换。 我在下面说明了我的意思: 公共接口IDataAdapter { object Transform(object input); 类型GetOutputType(); } 公共类SomeRandomAdapter:IDataAdapter { 公共对象转换(对象输入) ..
发布时间:2020-09-29 22:58:04 C#/.NET

Java 13 SE规范是否不需要缓存装箱的Byte对象?

阅读JAVA 13 SE规范,我在第5章的5.1.7节中找到了.拳击转换具有以下保证: 如果装箱的值p是求常数的结果 布尔值,char,short,int或long类型的表达式(第15.28节),以及 结果为true,false,范围为'\ u0000'到 '\ u007f'(含端点)或-128至127(含)范围内的整数, 然后令a和b为p的任何两次装箱转换的结果.它 总是a == b ..
发布时间:2020-07-23 19:24:15 Java开发

装箱和拆箱会在阵列中发生吗?

我是编程新手, 按照 MSDN , 装箱是将值类型转换为类型对象或该值类型实现的任何接口类型的过程.当CLR装箱值类型时,它将值包装在System.Object中,并将其存储在托管堆中.取消装箱从对象中提取值类型.装箱是隐式的;装箱是隐式的.拆箱是明确的. 我知道我们可以将任何对象存储在arraylist中,因为system.object是所有所有类型的基础.装箱和拆箱发生在阵列 ..
发布时间:2020-07-17 21:22:23 C#/.NET