求帮忙看下2者的差别

问题描述

如图,这样为什么IDE还是不能认为yourClass就是myCalss类型的数据呢这样写感觉也没有什么差别(以前一直都这么写,今天想偷个懒发现居然不行了)操作上看好像也就是最放的地方不一样。2者差距在什么地方呢

解决方案

解决方案二:
第一个你的yourClass类型是object,不是myClass,虽然你将yourClass强转成了myClass,但最终赋给的还是object
解决方案三:
本帖最后由 bdmh 于 2015-06-18 16:19:38 编辑
解决方案四:
同上varTemp=(MyClass)YourClass;会被编译器编译成MyClassTemp=(MyClass)YourClass;这你就该知道有啥区别了吧
解决方案五:
引用2楼bdmh的回复:

第一个yourClass就是object类型,ide不知道你给他搞到哪个具体类了,所以无法识别具体类型,第二个是var语法,会推断类型参考msdn

var的含义是明白的,搞不清的是myclsdd=(myClass)yourClass不是告诉IDE让他把myclsdd识别为myClass类型么
解决方案六:
引用4楼lulianqi的回复:

var的含义是明白的,搞不清的是myclsdd=(myClass)yourClass不是告诉IDE让他把myclsdd识别为myClass类型么

no,no,no只是告诉IDE将yourClass先转换成myClass类型,再赋值给myclsddmyclsdd原来是什么类型,还是什么类型它的类型是不会变的
解决方案七:
你应该知道objecto=1;inti=2;o=i;语法是成立的,可以隐式转换,因为object是所有类型的基类(也就是父类)那么换一种写法上面已经把i赋值给o了,o里面存放的是个int类型,所以可以再强制转换回int类型objecto2=(int)o;这也是可以的但是你以为o2就变成int类型了吗
解决方案八:
上面举例是用的值类型你换成引用类型其实是一样的道理
解决方案九:
在这个引用类型的变量入账入栈时就是传人的参数被ldarg的时候他的地址就被赋值给yourClass在入栈赋值的时候就决定了yourClass就是object类型,他的地址/引用可以随我们改变,不过变量的类型是无法改变的yourClass=(myClass)yourClass;实际上是yourClass=(object)((myClass)yourClass);也就是说C#里一个变量被定义出来类型是不可能发生改变的是不是这样理解的还有个问题想请教下如果yourClass就是一个指针变量,那是不是在C里面一个指针的类型也是不能改变的,只能改变指针的地址。也要跟C#一样xiang引用6楼Z65443344的回复:

你应该知道objecto=1;inti=2;o=i;语法是成立的,可以隐式转换,因为object是所有类型的基类(也就是父类)那么换一种写法上面已经把i赋值给o了,o里面存放的是个int类型,所以可以再强制转换回int类型objecto2=(int)o;这也是可以的但是你以为o2就变成int类型了吗

刚刚想了下好像想明白了在这个引用类型的变量入账入栈时就是传人的参数被ldarg的时候他的地址就被赋值给yourClass在入栈赋值的时候就决定了yourClass就是object类型,他的地址/引用可以随我们改变,不过变量的类型是无法改变的yourClass=(myClass)yourClass;实际上是yourClass=(object)((myClass)yourClass);也就是说C#里一个变量被定义出来类型是不可能发生改变的是不是这样理解的还有个问题想请教下如果yourClass就是一个指针变量,那是不是在C里面一个指针的类型也是不能改变的,只能改变指针的地址。也要跟C#一样先定义一个目标类型的指针在把指针地址赋过去。

时间: 2024-12-30 04:31:34

求帮忙看下2者的差别的相关文章

c语言-求帮忙看下为什么程序调用了西沟函数导致程序整个不能运行

问题描述 求帮忙看下为什么程序调用了西沟函数导致程序整个不能运行 写说明一下代码,代码主要是要在控制台模拟浏览器对tab和网页前进后退的一些操作 再说明一下问题,问题在于brwosertab类和webinformation类的西沟函数,一旦在这两个类的西沟函数里面写上delete 指针名字:整个程序就不能运行了,最关键的是我不太明白为什么程序要调用这两个函数,因为我感觉我都是动态对象啊.最后说明一下,我很菜,只有一点java编程的经验,所以第一次应对c++我真的需要一些帮助.谢谢你们了! 解决方

java 7-求第m个到第n个素数之间的素数和,求帮忙看下哪里错了 提取数组求和的时候总是在数组中出现0

问题描述 求第m个到第n个素数之间的素数和,求帮忙看下哪里错了 提取数组求和的时候总是在数组中出现0 public class All { public static void main(String[] args) { int a[] = new int[200]; //将前200个数中的素数提取出来放入数组a中 for(int i = 1 ; i < 200 ; i ++){ boolean isPrime = true; for(int k = 2 ; k < i ; k ++){ if

jsp连接数据库一直报错,求帮忙看下,谢谢

问题描述 jsp连接数据库一直报错,求帮忙看下,谢谢 <%@page language=""java"" import=""java.util.*"" pageEncoding=""utf-8""%><%@page import=""java.sql.*""%><html><body><% St

语言-新手求帮忙看下这段代码的数据溢出问题,没有C币理解下(我是在CodeBlock10.05下运行的)

问题描述 新手求帮忙看下这段代码的数据溢出问题,没有C币理解下(我是在CodeBlock10.05下运行的) #include #include #include unsigned int Ex_secret[30]={11,4,120,75,170,204,90,59,78,49,//用0~255的数表示8位2进制,一共240位 148,248,190,137,0,9,17,91,174,105,45,124,177,205,57,97,194,155,120,36}; unsigned in

textview-android无法显示地理位置信息,求帮忙看下代码

问题描述 android无法显示地理位置信息,求帮忙看下代码 package com.example.locationtest; import java.util.List; import android.app.Activity; import android.content.Context; import android.location.Location; import android.location.LocationListener; import android.location.L

图片-事件不触发求帮忙看下

问题描述 事件不触发求帮忙看下 那个c.mousedown事件不触发 解决方案 c在哪里,哪个窗口是f 解决方案二: 求帮忙----------------------

mybatis-SpringMVC+Mybais接收不到请求,求帮忙看下哪的问题

问题描述 SpringMVC+Mybais接收不到请求,求帮忙看下哪的问题 http://pan.baidu.com/s/1fI7fS项目我放百度网盘上了,顺便帮我看下启动时LOG4J爆的问题. 解决方案 可能是你的配置有问题

spring mvc-求帮忙看下springmvc框架中注解事务失效问题

问题描述 求帮忙看下springmvc框架中注解事务失效问题 web.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&q

html-插入jstl标签报错,求大神帮忙看下,网上解决方案都是错的

问题描述 插入jstl标签报错,求大神帮忙看下,网上解决方案都是错的 com.neusoft.unieap.action.EAPActionServlet.process(EAPActionServlet.java:814) >> org.apache.jasper.JasperException: Validation error messages from TagLibraryValidator for c null: org.xml.sax.SAXParseException: Attr