问题标签 [casting]

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.

0 投票
11 回答
6538 浏览

c# - 铸造和转换一样吗?

在 Jesse Liberty 的 Learning C# 一书中,他说“一种类型的对象可以转换为另一种类型的对象。这称为强制转换。”

如果您调查从下面的代码生成的 IL,您可以清楚地看到转换后的赋值与转换后的赋值不同。在前者中,您可以看到正在发生的装箱/拆箱;在后者中,您可以看到对转换方法的调用。

我知道最终这可能只是一个愚蠢的语义差异——但只是转换的另一个词。我并不是要刻薄,但我对任何人对此的直觉不感兴趣——意见在这里不重要!谁能指出一个明确的参考来确认或否认铸造和转换是否是同一件事?

谢谢

rp

在马特关于显式/隐式的评论之后添加的注释:

我不认为隐式/显式是区别。在我发布的代码中,两种情况下的更改都是明确的。将 short 分配给 int 时会发生隐式转换。

给 Sklivvz 的注意事项:

我想确认我对 Jesse Liberty(通常是清晰明了的)语言松散的怀疑是正确的。我认为 Jesse Liberty 对他的语言有点松懈。我知道转换是在对象层次结构中路由的——即,您不能从整数转换为字符串,但可以从派生自 System.Exception 的自定义异常转换为 System.Exception。

不过,有趣的是,当您尝试从 int 转换为字符串时,编译器会告诉您它无法“转换”该值。也许杰西比我想象的更正确!

0 投票
6 回答
3031 浏览

c# - c#绑定到和接口时向下转换

除了向下转换之外,是否有更好的方法将基类列表绑定到 UI,例如:

0 投票
6 回答
26133 浏览

java - 如何在 Java 中模拟 C# 作为运算符

在某些情况下,让类型转换返回空值而不是抛出 ClassCastException 是切实可行的。C# 具有as执行此操作的运算符。Java中是否有等效的东西,所以您不必显式检查ClassCastException?

0 投票
11 回答
188783 浏览

c++ - 将指针转换为整数

我正在尝试使现有代码适应 64 位机器。主要问题是在一个函数中,前面的编码器使用了一个 void* 参数,该参数在函数本身中被转换为合适的类型。一个简短的例子:

当然,在 64 位机器上,我得到了错误:

我想更正此问题,以便它仍然可以在 32 位机器上运行,并且尽可能干净。任何的想法 ?

0 投票
5 回答
29182 浏览

c# - 如何将数字转换为字节?

在 C 和 C++ 中,您可以通过在数字末尾添加“l”来告诉编译器数字是“long”。例如长 x = 0l;

如何告诉 C# 编译器一个数字是一个字节?

0 投票
2 回答
1613 浏览

vb.net - 初学者:将 byte() 转换/复制到 single() 中的最快方法

我有一个作为 directx 声音捕获结果返回的 byte() 数组,但对于我程序的其他部分,我想将结果视为 single()。逐项递减数组是最快的方法还是有一种聪明的方法?

得到它的代码是

它创建了字节数组,Ctype 可以处理 single 吗?(注意,我想不出办法!)

0 投票
4 回答
2110 浏览

c# - 在 C# 中正确的可空类型检查?

好的,我的实际问题是:我正在实施一个IList<T>. 当我到达时CopyTo(Array array, int index),这是我的解决方案:

这在我的原始代码中有效,并且仍然有效。但它有一个小缺陷,直到我开始为它构建测试时才暴露出来,特别是这个:

现在,这个测试应该通过了。它抛出ArgumentException关于无法投射的问题。为什么?array[0] == null. 检查设置为 的变量时,is关键字始终返回 false null。现在,出于各种原因,这很方便,包括避免 null 取消引用等。我最终想出的类型检查是这样的:

这并不完全优雅,但它有效......有没有更好的方法?

0 投票
3 回答
31420 浏览

casting - 在 Informix 中进行铸造

在 Informix 中,如何将char(8)类型转换为money类型,以便可以将其与另一种money类型进行比较?

使用“ tblAid.amt::money as aid_amt”不起作用。使用“ (tblAid.amt * 1) AS aid_amt”不起作用。

0 投票
2 回答
895 浏览

java - 如果 COM 对象实现了接口,如何使用 JIntegra 签入 Java?

我正在使用 JIntegra java com 网桥。我有一个 Object 类型的对象,其真正的 coclass 是未知的。我需要检查该对象是否可以转换为特定的 COM 接口(它具有由 JIntegra 生成的代理类)。

0 投票
3 回答
1224 浏览

.net - 从数据库中检索数据时转换或转换?

访问从数据库检索的 DataTable 中的对象时,是否有任何理由不将该对象转换为所需的类型,或者是否有理由使用转换?我知道当我们知道我们正在使用的数据类型时,该规则被强制转换,并在尝试将数据类型更改为它不是的东西时进行转换。假设我们知道列中存储了什么数据类型,强制转换似乎是合适的,但是是否有任何数据库类型问题意味着我们不能依赖它?