问题标签 [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 投票
6 回答
53781 浏览

sql - 为什么使用 CAST 时 VARCHAR 的默认长度是 30?

在 SQL Server 2005 中,此查询

返回 30 作为长度,而提供的字符串有更多字符。这似乎是默认值。为什么是 30,而不是 32 或 2 的任何其他幂?

[编辑]我知道在转换为 varchar 时我应该始终指定长度,但这是一个快速的让我们检查一些东西的查询。问题仍然存在,为什么是 30?

0 投票
6 回答
5284 浏览

c# - 有没有办法在不指定每种情况的情况下将对象转换回原始类型?

我有一个不同类型对象的数组,我使用 BinaryWriter 将每个项目转换为其二进制等效项,以便我可以通过网络发送结构。

我目前正在做类似的事情

问题是,如果错过了它们的类型,我的代码将来可能会中断。

我想做类似的事情。

但除非我每次都做演员,否则它不起作用。

编辑:

在咨询了答案之后,这就是我想出的功能。为了测试这个函数,将数组发送到 syslog。

0 投票
4 回答
3645 浏览

c# - 为什么在 .net 2.0 中将 null 转换为原语(即:int)会引发 null ref 异常而不是无效的转换异常?

我正在浏览一些代码,并遇到了我的组合框尚未初始化的情况。这是在 .NET 2.0 和以下代码中,this.cbRegion.SelectedValue 为空。

此代码引发了一个空引用异常,而不是一个无效的强制转换异常。我想知道是否有人知道为什么它会抛出空引用异常而不是无效转换?

0 投票
5 回答
19943 浏览

c++ - 枚举整数类型转换:运算符或函数

在我使用的外部代码中有枚举:

在我使用的另一个外部代码中,有 3 个 #define 指令:

很多时候我有 int X 等于 ValA 或 ValB 或 ValC,我必须将它转换为 En 的相应值(ValA 到 VALUE_A,ValB 到 VALUEB 等),因为某些函数签名具有枚举 En。很多时候我必须做相反的操作,将 enum En 转换为 ValA 或 ValB 或 ValC。我无法更改这些函数的签名,并且有很多这样的函数。

问题是:如何进行翻译?我应该创建 2 个将隐式使用的强制转换运算符吗?或者我应该只有 2 个将明确使用的翻译函数:

或者任何其他解决方案?

0 投票
11 回答
231154 浏览

java - Java中的向下转型

Java 中允许向上转换,但是向下转换会产生编译错误。

编译错误可以通过添加强制转换来消除,但无论如何都会在运行时中断。

在这种情况下,如果 Java 不能在运行时执行,为什么它允许向下转换?
这个概念有什么实际用途吗?

0 投票
2 回答
8548 浏览

java - 转换为在运行时确定的类

我有一个方法fetchObjects(String)可以返回一个Contract业务对象数组。className参数告诉我应该返回什么样的业务对象(当然这在这种解释的情况下没有意义,因为我已经说过我会返回s Contract,但这基本上是我在真实场景中的情况)。因此,我从某处获取条目集并加载集合条目的类(其类型由 指定className)。

现在我需要构造要返回的数组,所以我使用Set'stoArray(T[])方法。使用反射,我为自己构建了一个空的 Contracts 数组。但是,这给了我一个静态类型的值Object!所以接下来我需要将它转换为适当的类型,在这种情况下是Contract[](参见下面清单中的“星号下划线”部分)。

我的问题是:有没有办法以及如何Contract[]像我在清单中那样转换,但只能通过(或)确定数组元素()的类型ContractclassNameentriesType?换句话说,我想做的基本上是这样的:(entriesType[]) valueWithStaticTypeObject,其中 entriesType 被通过classname参数指定的类替换,即Contract

这在某种程度上是不可能的,还是可以以某种方式完成?也许使用泛型?

谢谢。


更新:toArray使用来自CodeIdol的类型安全方法,我更新了我的fetchObjects方法:

我需要做什么才能摆脱评论中引用的编译器错误?我是否必须Set<Contract>在我的方法的返回类型中指定getEntrySet才能使它起作用?感谢您的任何指示。

0 投票
3 回答
207 浏览

.net - 这是对铸造的低效使用吗?

这个问题是对我之前提出的问题的扩展(并得到了回答)。我正在重构我的代码,玩弄/试验各种重构的解决方案。

我想出的解决方案之一(但不满意..记住,我只是在尝试一些个人编码风格)是以下代码:-

请注意我如何将父对象data转换为它多次暗示的接口类型?代码有效,但我觉得这是代码异味-> 效率不高。我觉得可以对此进行改进-那里有任何大师的想法吗?

0 投票
5 回答
101210 浏览

python - Python 中的类型转换

我需要将 Python 中的字符串转换为其他类型,例如无符号和有符号 8、16、32 和 64 位整数、双精度、浮点数和字符串。

我怎样才能做到这一点?

0 投票
4 回答
33082 浏览

vb.net - 为什么使用 TryCast 而不是 DirectCast?

当我尝试转换Object obj为 TypeT时,如果无法转换,则有问题。

在我投射对象之后,我将寻找使用投射对象的工作。

相反,我希望在我将要投射它的地方得到一个异常,而不是说我将在哪里使用该对象。

DirectCast从这个意义上说,使用而不是更好TryCast?还是我错过了使用的其他一些意义TryCast

0 投票
2 回答
1431 浏览

php - 在运行时更改对象的类

我正在使用 CMS,Joomla,并且有一个核心类将一组参数呈现给一个表单,JParameter。基本上它有一个render()功能,可以输出一些与我网站的其余部分不一致的表格 HTML。

对于可维护性的问题,并且因为我不知道在哪里使用它,我不想更改核心代码。理想的情况是能够定义一个扩展 JParameter 的新类,然后将我的 $params 对象向下转换为这个新的子类。