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

casting - 长到 HWND (VS8 C++)

如何将 long 转换为 HWND(C++ Visual Studio 8)?

但我收到以下警告:

警告 C4312:“类型转换”:从“LONG”转换为更大尺寸的“HWND”

谢谢。

0 投票
9 回答
386974 浏览

c++ - 为什么使用 static_cast(x) 而不是 (int)x?

我听说static_cast函数应该优先于 C 风格或简单的函数风格转换。这是真的?为什么?

0 投票
4 回答
1296 浏览

c# - 我需要一个辅助方法来比较一个字符枚举和一个装箱的字符到一个对象

我有一个如下所示的枚举:

我正在从数据库中提取数据,用一个字符表示 - 你猜对了 - 'O' 事务是打开的还是 'C' 事务是关闭的。

现在因为数据作为对象从数据库中出来,所以我在编写比较代码时花了不少时间。

我能做的最好的就是写:

但是,这不是我必须处理的唯一字符枚举,我有 5 或 6 个,并且为它们编写相同的方法至少可以说很烦人。 据说所有枚举都继承自 System.Enum但如果我尝试将其设置为输入类型,则会出现编译错误。这也在 .NET 1.1 中,所以泛型是不可能的。

我已经为此苦苦挣扎了一段时间。有没有人有更好的方法来编写这种方法?另外,任何人都可以澄清整个枚举继承自 System.Enum 但不是多态的东西吗?

0 投票
10 回答
473 浏览

c++ - 自动铸件

我目前正在遭受脑放屁。我以前做过,但我不记得确切的语法,也看不到我写的代码,因为当时我在另一家公司工作。我有这样的安排:

现在我想让 P 与 PW 和 PR 互换(因此 PW 和 PR 可以互换)。我可能可以摆脱强制转换,但仅在这个模块中,这种代码更改就发生了很多次。我很确定它是一个操作员,但对于我的生活,我不记得是什么。

如何用最少的代码使 P 与 PW 和 PR 互换?

更新:提供更多说明。P 代表 Project,R 和 W 分别代表 Reader 和 Writer。Reader 拥有的只是加载代码 - 没有变量,而 writer 拥有用于简单写入的代码。它需要分开,因为阅读和写作部分有各种管理器类和对话框,这不是项目真正关心的项目文件的操作。

更新:我还需要能够调用 P 和 PW 的方法。因此,如果 P 有一个方法 a() 和 PW 作为方法调用 b() 那么我可以:

基本上是为了使转换透明。

0 投票
6 回答
64969 浏览

c# - 为什么 SQL 浮点数与 C# 浮点数不同

你好,我从 DataSet 中的 DataTable 中提取了一个 DataRow。我正在访问在 SQL 中定义为浮点数据类型的列。我正在尝试将该值分配给局部变量(c#float 数据类型),但得到一个 InvalidCastExecption

现在,玩弄这个我确实让它工作了,但它没有任何意义,而且感觉不对。

谁能解释我在这里缺少什么?

0 投票
3 回答
139 浏览

c++ - 自动铸造还原

在我搞砸了我之前的帖子的描述之后,我坐下来试图表达我的确切意图。

我有一个名为 P 的类,它执行一些不同的目的。我也有 PW,它在 P 上执行一些不同的目的。PW 没有成员变量,只有成员函数。

根据此描述,您会假设代码将如下所示:

然而,这带来了一个问题。我不能到处调用没有间接的 P 函数。

我想做的是调用 p->a( ) 并让它自动确定我想调用 P 的成员函数。

还有一个名为a的 PW 成员并不能真正扩展 - 如果我向 P 添加(或删除)另一个函数会怎么样 - 这将需要添加(或删除)到 PW。

0 投票
3 回答
9098 浏览

sql-server - SQL Server 2005 数值精度损失

调试一些与金融相关的 SQL 代码发现了 numeric(24,8) 数学精度的奇怪问题。

在您的 MSSQL 上运行以下查询,您将得到 A + B * C 表达式结果为 0.123457

选择 A、B、C、A + B * C FROM ( SELECT CAST(0.12345678 AS NUMERIC(24,8)) AS A, CAST(0 AS NUMERIC(24,8)) AS B, CAST(500 AS NUMERIC(24) ,8)) 作为 C) T

所以我们丢失了 2 个重要符号。尝试以不同的方式解决此问题,我将中间乘法结果(为零!)转换为数字(24,8)可以正常工作。

最后有一个解决方案。但是我仍然有一个问题 - 为什么 MSSQL 会以这种方式运行,以及在我的示例中实际发生了哪些类型转换?

0 投票
16 回答
183779 浏览

c# - 直接铸造与'as'运营商?

考虑以下代码:

这三种类型的施法有什么区别(好吧,第三种不是施法,但你明白了)。应该首选哪一个?

0 投票
4 回答
3247 浏览

linq - Linq输出作为接口?

这是我试图做的代码:

Operator 实现了 IOperator,但出现以下编译错误:

我如何施放这个以获得我需要的东西?

0 投票
1 回答
28383 浏览

c# - 使用接口的隐式运算符

我有一个泛型类,我正在尝试为其实现隐式类型转换。虽然它主要工作,但它不适用于界面转换。经过进一步调查,我发现存在编译器错误:“用户定义的接口转换”适用。虽然我知道这应该在某些情况下强制执行,但我正在尝试做的事情似乎是一个合法的案例。

这是一个例子:

使用它的代码:

有谁知道解决方法,或者任何人都可以以令人满意的方式解释为什么我不能interfaceReferenceToBar隐式转换为Foo<IBar>,因为在我的情况下它没有被转换,而只包含在 Foo 中?

编辑: 看起来协方差可能会提供救赎。我们希望 C# 4.0 规范允许使用协方差隐式转换接口类型。