implicit-conversion相关内容

C++ 隐式转换原语的警告或错误

我对一些 C++ 代码进行了一些重度重构,并发现了许多由我不知道的隐式转换引起的错误. 示例 struct A *a();布尔 b() {返回一个();}无效 c() {int64_t 常量 d(b());} 问题 在 b 中,a 的返回类型被默默地转换为 bool. 在 c 中,从 b 返回的值被静默提升为 int64_t. 问题 我如何才能收到原始类型之间隐式转换 ..
发布时间:2022-01-13 00:06:47 C/C++开发

double a = a + int b 和 int a += double b 有什么区别?

为什么会这样: 公共类加法{公共静态无效主要(){整数a = 0;双 b = 1.0;a = a + b;System.out.println(a);}} 不编译但是: 公共类加法{公共静态无效主要(){整数a = 0;双 b = 1.0;a += b;System.out.println(a);}} 编译. 解决方案 在 Java 中,+= 运算符隐式转换为左侧类型.这适用于所有 ..
发布时间:2022-01-13 00:03:29 Java开发

为什么我可以将 1 作为短变量传递,而不是 int 变量 i?

为什么第一个和第二个 Write 可以工作,而最后一个不行?有没有一种方法可以允许所有 3 个并检测它是 1、(int)1 还是我传入的?真的为什么允许一个但最后一个?第二个被允许但不是最后一个真的让我大吃一惊. 演示编译错误 使用系统;课堂节目{公共静态无效写入(短 v){}静态无效主要(字符串 [] 参数){写(1);//好的写((int)1);//ok诠释我=1;写(i);//错误! ..
发布时间:2022-01-13 00:02:19 C#/.NET

整数转换(缩小,扩大),未定义的行为

我很难以易于理解的方式找到有关此主题的信息,因此我要求对我发现的内容进行审查.这完全是关于转换和转换. 在我将提到的示例中: (signed/unsigned) int 更大;(有符号/无符号)字符更小; 截断整数.(大->小) 首先在MSB一侧截断 bigger以匹配smaller大小. 其次,convert 截断结果为 signed/unsigned,具体取决于较小的类型 ..
发布时间:2022-01-12 23:42:03 其他开发

Java - 为什么 char 不应该被隐式转换为字节(和短)原语?

编译器的某些功能让我感到困惑(使用 Eclipse 的 Oracle JDK 1.7). 所以我有这本书说 char 原语需要显式转换为 short 和 byte,这一切都是有道理的,因为数据类型的允许范围不重叠. 换句话说,下面的代码可以工作(但如果没有显式类型转换就无法工作): char c = '&';字节 b = (字节)c;短 s = (短)c; 打印 b 或 s 正确显 ..
发布时间:2022-01-12 20:15:18 Java开发

我可以为我不直接控制的两个类添加隐式转换吗?

我希望能够在两个不兼容的类之间进行隐式转换. 其中一个类是 Microsoft.Xna.Framework.Vector3,另一个只是 F# 项目中使用的 Vector 类.我正在用 XNA 用 C# 编写一个 3d 游戏,虽然它是用 3D 绘制的,但游戏玩法只发生在二维(这是一个鸟瞰图).F# 类使用 2D 向量处理物理: type Vectorx.newValue(sqrt (x.un ..

为什么我可以将 1 作为 short 传递,而不能将 int 变量 i 传递?

为什么第一个和第二个 Write 有效,而最后一个无效?有没有办法可以允许所有 3 个并检测它是 1、(int)1 还是我传入的?真的为什么允许一个而不是最后一个?第二个被允许但不是最后一个真的让我大吃一惊. 演示编译错误 使用系统;课程计划{public static void Write(short v) { }静态无效主(字符串 [] args){写(1);//确定写((int)1) ..
发布时间:2021-12-31 22:28:39 C#/.NET

java运算符+=中的隐式转换

我发现 java compile 在使用 int 和 float 的赋值和自赋值语句方面具有非预期的行为. 以下代码块说明了错误. int i = 3;浮动 f = 0.1f;我 += f;//没有编译错误,但 i = 3i = i + f;//编译错误 在自赋值 i += f 中,编译不会出错,但计算的结果是一个值为 3 的 int,并且变量 i 维护值 3. 在 i = i ..
发布时间:2021-12-31 22:26:16 Java开发

三元条件下的隐式转换问题

可能的重复: 条件运算符不能隐式转换? 为什么 null 需要显式类型转换? 我进行了搜索,但没有找到有关为什么会发生以下情况的良好解释. 我有两个类,它们有一个共同的接口,我尝试使用三元运算符初始化此接口类型的实例,如下所示,但这无法编译,并显示错误“无法确定条件表达式的类型,因为它们之间没有隐式转换“xxx.Class1"和“xxx.Class2": public Console ..
发布时间:2021-12-31 22:15:49 C#/.NET

TypeScript:隐式数字枚举转换

为什么下面会在 TypeScript 中编译? enum xEnum {X1,X2}功能测试(x:xEnum){}测试(6); 它不应该抛出错误吗?恕我直言,这个隐式转换在这里是错误的,不是吗? 这里是 游乐场链接.> 解决方案 这是语言规范(3.2.7 Enum Types)的一部分: Enum 类型可分配给 Number 原始类型,反之亦然反之,但不同的枚举类型不能相互赋值 ..
发布时间:2021-12-31 22:10:37 其他开发

const_cast 与 static_cast

将 const 添加到非常量对象中,哪种方法是首选?const_cast 或 static_cast.在最近的一个问题中,有人提到他们更喜欢使用 static_cast,但我原以为 const_cast 会使代码的意图更加清晰.那么使用 static_cast 使变量为 const 的参数是什么? 解决方案 不要使用.初始化引用对象的常量引用: T x;const T&外部参照(x);x ..
发布时间:2021-12-31 22:05:53 C/C++开发

我们可以在 c# 中定义枚举的隐式转换吗?

是否可以在 c# 中定义枚举的隐式转换? 有什么可以实现这一目标的吗? 公共枚举 MyEnum{一 = 1,二 = 2}MyEnum 编号 = MyEnum.one;长 i = 数字; 如果没有,为什么不呢? 解决方案 有一个解决方案.考虑以下几点: 公共密封类 AccountStatus{public static readonly AccountStatus Open = ..
发布时间:2021-12-29 16:23:05 C#/.NET

条件运算符不能隐式转换?

我有点被这个 C# 的小怪癖难住了: 给定变量: Boolean aBoolValue;字节 aByteValue; 以下编译: if (aBoolValue)aByteValue = 1;别的aByteValue = 0; 但这不会: aByteValue = aBoolValue ?1:0; 错误说:“无法将类型‘int’隐式转换为‘byte’." 当然,这个怪物会编译 ..
发布时间:2021-12-25 12:58:27 C#/.NET