问题标签 [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 回答
1353 浏览

c# - 空字面问题

我有一个转发器,只有当它存在时才应该显示绑定的字段值。阅读了这篇文章后,我决定在我的转发器中使用文字并使用 OnItemDatabound 触发器填充我的文字,但我的文字似乎无法从后面的 c# 代码访问,我不明白为什么!

这是aspx页面

以及背后的代码

0 投票
2 回答
1877 浏览

c# - 为什么 C# 编译器不调用隐式强制转换运算符?

假设我们有以下类型:

并尝试编译以下代码片段:

这剪辑编译得很好,没有错误。i1 和 i2 转换为整数并评估加法。

但是如果我们有以下类型:

尝试编译另一个代码片段:

现在的问题是,为什么编译器会生成“错误 CS0019:运算符 '+' 不能应用于 'MyNullable<Money>' 和 'MyNullable<Money>' 类型的操作数”?

0 投票
4 回答
427 浏览

asp.net - ASP.NET 中的转换错误

我在 App_Code 文件夹中声明了一个类。该类包含一个返回类型 Portfolio 的公共共享方法。

当我尝试调用此方法以在其中一个 ASCX 控件中初始化 Portfolio 类型的对象时,我收到“无法将 Jaguar.Portfolio 类型的值转换为 Jaguar.Portfolio”消息。

这是一个“网站”项目。我尝试使用 CType 和 DirectCast,但在尝试构建站点时仍然遇到相同的编译错误。

我在 ascx 控件的代码隐藏文件中使用下面列出的代码行

0 投票
3 回答
52686 浏览

java - 将对象数组转换为我想要的类的数组

只是为了审查,有人可以快速解释是什么阻止了它的工作(编译时):

...以及是什么使它成为有效的方式:

我不清楚与铸造(或其他任何东西)一起工作的机制是什么。

0 投票
2 回答
745 浏览

java - Java 编译器如何解析类型转换?

一个简单的表达式,如

根据是否x是类型名称,解释不同。如果x不是类型名称,(x) - y只需yx. 但是 ifx是一个类型名称,(x) - y计算负数y并将结果值转换为 type x

在典型的 C 或 C++ 编译器中,是否x是类型的问题是可以回答的,因为解析器在处理 typedef 或 struct 声明后立即将此类信息传达给词法分析器。(我认为这种要求违反级别是 C 设计中最讨厌的部分。)

但是在 Java 中,x可能要到源代码的后面才能定义。Java 编译器如何消除这种表达式的歧义?

很明显,Java 编译器需要多次传递,因为 Java 不需要在使用前声明。但这似乎意味着第一遍必须在解析表达式上做一个非常草率的工作,然后在后面的一遍中做另一个更准确的表达式解析。这似乎很浪费。

有没有更好的办法?

0 投票
7 回答
16984 浏览

java - Java 中的“动态”转换

大家好,

想知道是否有任何 Java 黑客可以告诉我为什么以下方法不起作用:

代码很高兴编译,但决定在运行时抛出 ClassCastException D=

编辑:哇,真的很快回复。多谢你们!所以看来我不能使用这种方法进行向下转换......还有其他方法可以在 Java 中进行向下转换吗?我确实考虑过让每个ChildN类都覆盖copy(),但并不热衷于添加额外的样板代码。

0 投票
5 回答
3777 浏览

c++ - 从“OLE_HANDLE”转换为“HICON”的正确方法是什么?

对于 x64 目标构建,从“OLE_HANDLE”转换为“HICON”的正确方法是什么?

特别是对于普通的 C 样式转换,我在使用 x64 配置编译时收到此警告:

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

这是有问题的代码:

上面的代码对我来说很好,但我想在为 x64 构建时摆脱警告。

0 投票
4 回答
4493 浏览

c# - 将字符转换为无符号短片:幕后发生了什么?

给定这个字段:

而这个声明:

幕后会发生什么?

lookup_ext[1669] 返回 67 = 0100 0011 (C),lookup_ext[1670] 返回 78 = 0100 1110 (N),lookup_ext[1671] 返回 68 = 0100 0100 (D);然而 slt[1670] 返回 18273 = 0100 0111 0110 0001。

我正在尝试将它移植到 C#,所以除了一个简单的方法之外,我还想知道这里到底发生了什么。自从我经常使用 C++ 以来已经有一段时间了。

谢谢!

0 投票
3 回答
14215 浏览

python - 解压到未知数量的变量?

我怎样才能将一个未知的元组解包到一个列表中?

我有许多数据列,它们被某些函数分成一个元组。我想将此元组解压缩为变量,但我不知道我将拥有多少列。有没有办法将它动态解包到我需要的尽可能多的变量中?

0 投票
9 回答
7774 浏览

c# - C# - 泛型和继承问题

我遇到了继承和泛型的问题。这是说明我的问题的代码:

当我尝试做这样的事情时:

我收到强制转换异常:无效的强制转换异常。无法将“TestApplication.MyClass`1[System.Int32]”转换为“TestApplication.MyIntClass”。

更重要的是,我无法创建强制转换运算符:

因为:'TestApplication.MyIntClass.implicit operator TestApplication.MyIntClass(TestApplication.MyClass)':不允许用户定义的与基类之间的转换

我需要如上所述创建演员表。我不知道为什么我不能从基类类型转换。我怎么解决这个问题?提前致谢。

编辑

感谢您的回答。现在我看到我无法从基类转换为派生类,并且我看到它与泛型没有任何关系。但是为什么我不能从基类创建用户定义的转换?我有一个返回基类的方法。我能够定义一种转换方法,但创建一个强制转换运算符恕我直言将是一个更好的解决方案。