Questions tagged «casting»

强制转换是一个过程,其中如果允许转换,则将对象类型显式转换为另一种类型。此过程可能会导致价值变化。

3
Win32上将double类型转换为unsigned int会截断为2,147,483,648
编译以下代码: double getDouble() { double value = 2147483649.0; return value; } int main() { printf("INT_MAX: %u\n", INT_MAX); printf("UINT_MAX: %u\n", UINT_MAX); printf("Double value: %f\n", getDouble()); printf("Direct cast value: %u\n", (unsigned int) getDouble()); double d = getDouble(); printf("Indirect cast value: %u\n", (unsigned int) d); return 0; } 输出(MSVC x86): INT_MAX: 2147483647 UINT_MAX: …

10
将指针转换为整数
我正在尝试将现有代码改编为64位计算机。主要问题在于,在一个函数中,以前的编码器使用void *参数,该参数在函数本身中转换为合适的类型。一个简短的例子: void function(MESSAGE_ID id, void* param) { if(id == FOO) { int real_param = (int)param; // ... } } 当然,在64位计算机上,我得到以下错误: error: cast from 'void*' to 'int' loses precision 我想更正此问题,以便它仍可在32位计算机上且尽可能干净地工作。任何的想法 ?
85 c++  gcc  casting  64-bit  32-bit 

13
java:如何将变量从一种类型动态转换为另一种类型?
我想对Java变量进行动态转换,转换类型存储在其他变量中。 这是常规转换: String a = (String) 5; 这就是我要的: String theType = 'String'; String a = (theType) 5; 这有可能吗?谢谢! 更新资料 我正在尝试使用HashMap收到的A填充类。 这是构造函数: public ConnectParams(HashMap<String,Object> obj) { for (Map.Entry<String, Object> entry : obj.entrySet()) { try { Field f = this.getClass().getField(entry.getKey()); f.set(this, entry.getValue()); /* <= CASTING PROBLEM */ } catch (NoSuchFieldException ex) { …

1
强制转换运算符可以是显式的吗?
对于构造函数,添加关键字explicit可以防止热心的编译器在不是程序员的初衷时创建对象。这样的机制也可用于铸造操作员吗? struct Foo { operator std::string() const; }; 例如,在这里,我希望能够Foo转换为std::string,但是我不希望这种转换隐式发生。

5
用Java转换变量
我想知道是否有人可以告诉我铸造的工作原理?我知道何时应该执行此操作,但并不真正了解它的工作原理。对于原始数据类型,我会部分理解,但是在涉及对象转换时,我并不了解它是如何工作的。 例如,如何突然将类型为Object的对象转换为对象MyType(仅作为示例),然后获取所有方法?
84 java  casting 


6
在C#中将Int强制转换为通用枚举
与C#中将Cast转换为枚举类似,但我的枚举是Generic Type参数。处理此问题的最佳方法是什么? 例: private T ConvertEnum<T>(int i) where T : struct, IConvertible { return (T)i; } 产生编译器错误 Cannot convert type 'int' to 'T' 完整代码如下,其中value可以包含int或null。 private int? TryParseInt(string value) { var i = 0; if (!int.TryParse(value, out i)) { return null; } return i; } private T? TryParseEnum<T>(string value) where T …
84 c#  generics  casting  enums 

9
使用TypeScript中的属性构建函数对象
我想创建一个函数对象,该对象还具有一些属性。例如,在JavaScript中,我会这样做: var f = function() { } f.someValue = 3; 现在,在TypeScript中,我可以将其描述为: var f: { (): any; someValue: number; }; 但是,如果没有强制转换,我实际上无法构建它。如: var f: { (): any; someValue: number; } = <{ (): any; someValue: number; }>( function() { } ); f.someValue = 3; 没有铸造,您将如何构建它?

3
为什么将自由的返回值转换为无效?
我正在读一本使用C 的书(Butenhof的《使用POSIX线程编程》,1997年),并且遇到了以下问题: (void)free(data); 这data只是指向已分配结构的指针, data = malloc(sizeof(my_struct_t)); 为什么free被强制转换为void? 从我对C的理解来看,这似乎没有任何意义,原因有两个: 自由功能已经返回 void 该代码未使用返回值(甚至未分配给变量) 这本书写于1997年。这是某种遗留的东西吗? 作者提到这些示例是在Digital Unix 4.0d上运行的,但是如果您不打算使用该结果,我仍然无法想象有理由使用函数的结果。
82 c  casting  free  void  legacy-code 

4
Java将图像转换为BufferedImage
在StackOverflow上已经存在类似此链接的问题,并且可接受的答案是“广播”: Image image = ImageIO.read(new File(file)); BufferedImage buffered = (BufferedImage) image; 在我的程序中,我尝试: final float FACTOR = 4f; BufferedImage img = ImageIO.read(new File("graphic.png")); int scaleX = (int) (img.getWidth() * FACTOR); int scaleY = (int) (img.getHeight() * FACTOR); Image image = img.getScaledInstance(scaleX, scaleY, Image.SCALE_SMOOTH); BufferedImage buffered = (BufferedImage) image; 不幸的是,我得到运行时错误: sun.awt.image.ToolkitImage无法转换为java.awt.image.BufferedImage 显然,投射不起作用。 …

8
在C ++中将int强制转换为枚举的通用方法
有没有投一个通用的方法int,以enum在C++? 如果int落在的范围内,enum则应返回一个enum值,否则抛出exception。有没有办法通用地编写它?不止一个enum type应予以支持。 背景:我有一个外部枚举类型,无法控制源代码。我想将此值存储在数据库中并检索它。
81 c++  casting  enums 

1
MySQL:将NULL强制类型转换为0
让我们假设下表(例如,几个内部join语句的结果): id | column_1 | column_2 ------------------------ 1 | 1 | 2 | 2 | 2 3 | | 3 例如,您可以从以下语句中获取: select a.id, t1.column_1, t2.column_2 from a left join t1 on a.id = t1.id left join t2 on a.id = t2.id 现在,如果我想将t1.column_1和t2.column_2总结如下 select a.id, t1.column_1, t2.column_2, (t1.column_1 + t2.column_2) as …
81 sql  mysql  casting 

3
从'System.Int32'到'System.Nullable`1 [[System.Int32,mscorlib]]的无效转换
Type t = typeof(int?); //will get this dynamically object val = 5; //will get this dynamically object nVal = Convert.ChangeType(val, t);//getting exception here 我在上面的代码中收到InvalidCastException。对于上述内容,我可以简单地编写int? nVal = val,但是以上代码是动态执行的。 我正在将一个值(非空类型,如int,float等)包装在一个对象(在此为val)中,并且我必须通过将其强制转换为另一个类型(可以为空的版本,也可以为不能为空的版本)来将其保存到另一个对象的)。什么时候 从'System.Int32'到'System.Nullable`1 [[System.Int32,mscorlib,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089]]的无效转换。 一个int,应该是可转换/类型可转换的nullable int,这是什么问题?

6
反思“铸造”
考虑以下示例代码: class SampleClass { public long SomeProperty { get; set; } } public void SetValue(SampleClass instance, decimal value) { // value is of type decimal, but is in reality a natural number => cast instance.SomeProperty = (long)value; } 现在,我需要通过反射来做类似的事情: void SetValue(PropertyInfo info, object instance, object value) { // throws System.ArgumentException: …
81 c#  reflection  casting 

8
将dict的键和值从unicode转换为str的最快方法?
我正在从一个代码“层”收到命令,对该命令进行一些计算/修改,然后再将其传递到另一个“层”。原始dict的键和“字符串”值是unicode,但是将它们传递到的层只接受str。 这将经常被调用,所以我想知道什么是最快的转换方法: { u'spam': u'eggs', u'foo': True, u'bar': { u'baz': 97 } } ...至: { 'spam': 'eggs', 'foo': True, 'bar': { 'baz': 97 } } ……请记住,非“字符串”值必须保持其原始类型。 有什么想法吗?
81 python  casting  types 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.