我有一个类Animal ,它的子类Dog 。 我经常发现自己编码如下: if (animal is Dog) { Dog dog = animal as Dog; dog.Name; … } 对于可变的Animal animal; 。 有没有一些语法可以让我写下如下的东西: if (Dog dog = animal as Dog) { dog.Name; … }
可能重复: 在int中枚举枚举的通用方法 我如何在int中枚举一个枚举? 例如: enum Test { A, B }; int a = 1; 如何转换为typesTest :: A?
在下面的例子中 int i = -128; Integer i2 = (Integer) i; // compiles Integer i3 = (Integer) -128; /*** Doesn't compile ***/ Integer i4 = (Integer) (int) -128; // compiles Integer i4 = -128; // compiles Integer i5 = (int) -128; // compiles Integer i6 = (Integer) (-128); // compiles Integer i7 = (Integer) 0-128; // […]
这些都是平等的吗? 我应该在什么情况下select他人? var.ToString() CStr的(VAR) CType(var,String) DirectCast(var,String) 编辑:从NotMyselfbuild议… TryCast(var,String)
我知道你可以转换一个String为一个数字与read : Prelude> read "3" :: Int 3 Prelude> read "3" :: Double 3.0 但是,如何获取Int值的String表示?
今天我到了C编程语言(第二版Brian W. Kernighan&Dennis M. Ritchie)的第167页,发现作者说我必须投入malloc 。 这是书中的一部分: 7.8.5存储pipe理 函数malloc和callocdynamic获取内存块。 void *malloc(size_t n) 返回一个指向未初始化存储的n个字节的指针,如果请求不能满足,则返回NULL。 void *calloc(size_t n, size_t size) 为指定大小的n个对象返回一个指向足够空闲空间的指针;如果请求不能满足,则返回NULL。 存储初始化为零。 malloc或calloc返回的指针对于所讨论的对象具有正确的alignment方式,但是必须将其转换为适当的types,如 int *ip; ip = (int *) calloc(n, sizeof(int)); 我已经知道malloc (和它的系列)返回typesvoid * ,并有很好的解释为什么不投出malloc 。 但是我的问题是:为什么这本书说我应该投它?
我知道可以从一种types转换为另一种types的项目列表(假设你的对象有一个公共静态显式操作符方法来执行转换),如下所示: List<Y> ListOfY = new List<Y>(); foreach(X x in ListOfX) ListOfY.Add((Y)x); 但是不可能一次列出整个清单吗? 例如, ListOfY = (List<Y>)ListOfX;
我一直在这里find这两个人,而Google的人却遇到了麻烦,而不是相反。 但是我确信在从int到Long之前,我并不是唯一遇到这种情况的人。 我发现的唯一的其他答案是“只要把它放在首位”,这实际上没有解决问题。 有人可以帮我吗? 我最初尝试铸造,但我得到一个“ Cannot cast from int to Long ” for (int i = 0; i < myArrayList.size(); ++i ) { content = new Content(); content.setDescription(myArrayList.get(i)); content.setSequence((Long) i); session.save(content); } 正如你可以想象我有点困惑,我坚持使用int,因为一些内容作为一个ArrayList进来,我存储这个信息的实体需要序列号作为一个长。 谢谢!
我正在研究一个旧的代码库,几乎每个free()的调用都在其参数上使用一个强制转换。 例如, free((float *)velocity); free((float *)acceleration); free((char *)label); 每个指针都是对应的(和匹配的)types。 我根本看不到这一点。 这是非常古老的代码,所以我想知道这是否是一个K&R的事情。 如果是这样,我实际上希望支持那些可能需要这个的编译器,所以我不想删除它们。 有没有技术上的理由来使用这些演员? 我甚至没有看到使用它们的实用理由。 在释放数据之前,有什么要提醒自己的数据types? 编辑:这个问题不是其他问题的重复。 另外一个问题就是这个问题的一个特例,我认为如果接近的选民会阅读所有的答案,那么这个问题是显而易见的。 Colophon:我给“常量答案”一个复选标记,因为这是可能需要完成的一个真正的理由。 然而,关于它是一个ANSI C之前的习惯(至less在一些程序员之间)的答案似乎是它被用于我的情况的原因。 这里有很多人的好点子。 感谢你的贡献。
在给定下列枚举的情况下,将Int转换为Java的枚举的正确方法是什么? public enum MyEnum { EnumValue1, EnumValue2 } MyEnum enumValue = (MyEnum) x; //Doesn't work???