关于子类对象和父类对象的赋值求疑问。。C#中 父类对象和子类对象可以随意互相赋值???

 我来答
百度网友01136f8
2013-04-16 · TA获得超过906个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:187万
展开全部
楼主你好~

父类和子类是不能随意互相赋值的。

父类实例 = 子类实例; // 可以编译通过
最简单的用例就是一个 object 可以被赋值储存各种实例变量。


子类实例 = 父类实例; // 编译出错
正确的写法是:
子类实例 = (子类类型)父类实例;
或者
子类实例 = 父类实例 as 子类类型;
这种情况编译通过,但是如果使用强制转换以后出现了错误的赋值,那么运行时报错。
最常见的用例就是各种事件的第一个参数object sender,一般处理就是获取触发对象就是:
Button bt = sender as Button;
这就是提取了触发这个事件的按钮。

请追问~
帐号已注销
2013-04-16 · TA获得超过2184个赞
知道小有建树答主
回答量:631
采纳率:100%
帮助的人:645万
展开全部
可以互相赋值。但有所不同。
父类对象赋值给子类,对象属性能保持完整,原有属性不会丢失。
子类对象赋值给父类对象,可能会发生属性丢失,因为子类对象除了具有父类的属性,还具有自身属性,赋值给父类时,子类特有属性会丢失。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式