boxing相关内容

将原始长整型数组转换为长整型列表

这可能是一个很容易,headdesk的问题,但我的第一次尝试令人惊讶的完全失败了。我想要一个原始longs数组,并把它变成一个列表,我试图这样做: long [ ] input = someAPI.getSomeLongs(); List inputAsList = Arrays.asList(input); //总失败甚至编译! 正确的方法是什么? ..
发布时间:2016-12-15 17:41:36 Java开发

当类已知时创建(盒装)原始实例

我需要一个方法来返回提供的类类型的实例。让我们假设所提供的类型被限制为使得可以创建它们的“空”实例。例如,提供 String.class 将返回一个空的String,提供一个 Integer.class 将返回一个Integer,值为零,以此类推。但是如何在运行中创建(盒装)原始类型?像这样? public Object newInstance(Class type){ if(!t ..
发布时间:2016-11-23 13:52:11 Java开发

好奇心:将C#结构转换为对象仍然会复制它

这个问题更多是出于好奇心而不是真正的问题。考虑下面的代码(C#4.0,如果重要): 类程序{ static Point myPoint = new Point (3,5); static void Main(string [] args){ Console.WriteLine(“Point Struct Before:”+ myPoint); object point = G ..
发布时间:2016-10-11 11:21:09 C#/.NET

IL约束通话

有关此代码: 类节目 { 静态无效的主要() { Console.WriteLine(新MYSTRUCT()的ToString()); } 结构MYSTRUCT {} } C#编译器生成约束callvirt IL代码。 的这文章说: 例如,如果一个值V型覆盖Object.ToString()方法,调用V.ToString()指 ..
发布时间:2016-10-05 22:23:50 C#/.NET

值类型使用动态推断时,在运行时对象

我几乎明白为什么这个问题出现了(虽然我比欢迎外行的解释,如果你能找到的时候了!),那我敢肯定,包括装箱/拆箱我不会试图解释不正确的.. 使用我目前的知识(或缺乏)的情况,我不知道如何以最佳方式进行解决。 下面是显示我的问题一个相当简化的控制台应用程序: 静态无效的主要(字串[] args) { 试 { //成功 IEnumerable的<表达式来; Func键&L ..
发布时间:2016-10-03 20:00:44 C#/.NET

试图从的ExecuteScalar获得价值时,铸造例外()

在下面的代码中,语句1抛出铸造例外。我很奇怪,为什么不是它拆箱?结果 语句2工作正常,但我想知道为什么第一个是错的? 使用(IDbCommand的命令= connection.CreateCommand()) { command.CommandText =的String.Format(“SELECT COUNT(1)FROM {0}”中,TableName); 诠释计数=(int)的 ..
发布时间:2016-09-29 13:36:06 C#/.NET

为什么这个投由短到int失败?

我们有一些代码,从Microsoft Access数据库存档数据到MS SQL Server数据库。假设我们有一个数据读者已经从Access表填充,我们都在为插入准备加入一个参数一个SqlCommand,我们有失败类型转换。下面是代码: oSqlServerDbCmd_ForInsert.Parameters.AddWithValue(“@时间”, (INT)oReader [“持续时间“ ..
发布时间:2016-09-29 12:21:40 C#/.NET

如何在CLR知道的盒装对象的类型?

当值类型是盒装,它被放在一个非类型化参考对象内。 ? 那么是什么原因在这里无效强制转换异常 长L = 1; obj对象=(对象)升; 双D =(双)OBJ; 解决方案 没有,它不是放在一个无类型对象。对于每一个值类型,有一个在CLR装箱引用类型。所以,你得的的东西的,如: 公共类BoxedInt32 //而不是实际的名称 { 私人只读int值; 公共Box ..
发布时间:2016-09-29 11:45:12 C#/.NET

是否传递一个"值类型;从"参数引起的变量进行装箱?

我知道,装箱和拆箱都是比较昂贵的性能方面。我想知道的是: 是否传递一个值类型的方法的退出参数事业装箱/的拆箱变量(从而影响性能)?可以在编译器优化送人 INT多少?; 布尔结果= Int32.TryParse(值,数出); 解决方案 正如其他人所指出的,这里没有拳击。当你传递一个变量对应于out或ref参数一个参数,你在做什么是的做的别名变量的。你没有做任何事情到的 ..
发布时间:2016-09-29 11:41:39 C#/.NET

如何为空< T>从类似的自定义C#结构有什么不同?

在可空微的优化,第一部分,埃里克提到,可空< T> 拥有的奇怪的拳击行为的不能由一个类似的用户定义类型来实现。 有什么特殊功能,在C#语言的赠款,以预定义的可空< T> 键入?尤其是无法作出一个 MyNullable 键入 当然,工作的人,可空< T> 具有特殊的语法糖 T ,但我的问题更多的是语义 解决方案 我是越来越善于为:有没有这样的东西作 ..
发布时间:2016-09-28 12:50:25 C#/.NET

可空盒装基础类型可以转换为枚举,但盒装枚举类型不能转换为可空类型

盒装为空的基础类型的可投以枚举,但盒装枚举类型的不能转换可空类型。 同样, 盒装为空的枚举的可投以基本类型,但是盒装的基础类型的不能转换以可空的枚举。 的好吧,我知道“盒装可空类型”是不是来形容它的最好方式,但它的问题的缘故。我知道那就是变得越来越盒装基础值类型。的 我将举例证明这一点。假设我有一个枚举与 INT 作为基础类型。 枚举性别{男,女} ..
发布时间:2016-09-26 22:07:02 C#/.NET

装箱的值类型比较

什么,我想在这里实现的是盒装的原始类型的直值比较。 ((对象)12 ).Equals((对象)12); //类型匹配将导致一个值比较, ((对象)12).Equals((对象)12D); //但类型不匹配不会。 (假) 的Object.Equals((对象)12,(对象)12D); // 同样在这里。 (假) 我理解的'为什么'。我只是不明白一个“如何”。 的类型是 ..
发布时间:2016-09-26 20:13:02 C#/.NET

枚举拳击与平等

为什么这返回false 公共枚举路线{上,下,左,右} 静态无效的主要(字串[] args) { 布尔匹配= IsOneOf(Directions.Right,Directions.Left,Directions.Right); Console.WriteLine(匹配); Console.Read(); } 公共静态布尔IsOneOf(枚举自我,PARAMS枚举[] ..
发布时间:2016-09-26 11:32:29 C#/.NET

用例为拳击在C#中的值类型?

有情况下,当需要被视为引用类型的 实例的 值类型的实例。为$ B像这样$ b的情况下,值类型 实例可以通过名为拳击 过程中转换成 引用类型实例。当一个价值 类型的实例是盒装,存储在堆上和 实例的值复制到了 分配空间 。此存储的引用是 放置在堆栈中。装箱值 是一个对象,引用类型的 包含值 型实例的内容。 的了解.NET的通用类型系统 在维基百科的存在是Java的 ..
发布时间:2016-09-23 22:40:48 C#/.NET

拳击VS拆箱

另外最近C#面试问题我是,如果我知道什么装箱和拆箱的。 我解释说,值类型在堆栈和引用类型上堆。 当值转换为引用类型,我们把它叫做拳,反之亦然。 然后他问我来计算的: INT I = 20; 对象J =; J = 50; 什么是 I ? 我搞砸了,说50,在那里它实际上20.现在我想明白为什么,但是当我用不同的组合我很惊讶看到这样打: 对象 ..
发布时间:2016-09-22 19:58:11 C#/.NET

确实valueType.ToString()做的VALUETYPE铸造?

可以说,我在C#下面的代码 INT X = 0; x.ToString(); 做到这一点确实在内部x的拳击? 是有没有办法看到从Visual Studio这样? 解决方案 在这个特定的情况下,您使用的是 System.Int32 (一个 INT )。这种类型的重新定义的ToString ,等于和的GetHashCode ,所以没有拳击。 如果您使用 ..
发布时间:2016-09-20 21:28:47 C#/.NET

我可以设置一个结构的值通过反射无拳?

其实,我应该问:我怎么能做到这一点的和的仍然符合CLS?因为我能想到这样做是如下,但使用的唯一方法要么 __ makeref , FieldInfo.SetValueDirect 或只是 System.TypedReference 一般CLS的失效符合。 //代码说明问题: TestFields领域=新TestFields {MaxValue的= 1234}; //测试结构有一个字段 ..
发布时间:2016-09-20 20:38:47 C#/.NET