关于子类对象和父类对象的赋值求疑问。。C#中 父类对象和子类对象可以随意互相赋值???
2个回答
展开全部
楼主你好~
父类和子类是不能随意互相赋值的。
父类实例 = 子类实例; // 可以编译通过
最简单的用例就是一个 object 可以被赋值储存各种实例变量。
而
子类实例 = 父类实例; // 编译出错
正确的写法是:
子类实例 = (子类类型)父类实例;
或者
子类实例 = 父类实例 as 子类类型;
这种情况编译通过,但是如果使用强制转换以后出现了错误的赋值,那么运行时报错。
最常见的用例就是各种事件的第一个参数object sender,一般处理就是获取触发对象就是:
Button bt = sender as Button;
这就是提取了触发这个事件的按钮。
请追问~
父类和子类是不能随意互相赋值的。
父类实例 = 子类实例; // 可以编译通过
最简单的用例就是一个 object 可以被赋值储存各种实例变量。
而
子类实例 = 父类实例; // 编译出错
正确的写法是:
子类实例 = (子类类型)父类实例;
或者
子类实例 = 父类实例 as 子类类型;
这种情况编译通过,但是如果使用强制转换以后出现了错误的赋值,那么运行时报错。
最常见的用例就是各种事件的第一个参数object sender,一般处理就是获取触发对象就是:
Button bt = sender as Button;
这就是提取了触发这个事件的按钮。
请追问~
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询