自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(3)
  • 收藏
  • 关注

原创 is 和 as 的区别

上述代码中,CLR实际检查两次对象类型。如果是,在if语句块内部转换,CLR再一次核实o是否引用一个Student。CLR的类型检查增强了安全性,但无疑会对性能造成一定的影响。然后,CLR必须遍历继承层次结构,用每个基类型去核对指定的类型Student。如果对象不能转换,返回null,所以正确做法就是检查最终生成的引用是否null。上述代码中,CLR核实s是否兼容于Student类型,。若是,as 返回对同一个对象的非null引用。如果对象引用null, is 返回false,因为没有可检查其类型的对象。

2023-05-16 21:24:01 213

原创 C# 类型转换

CLR最重要的特性之一就是类型安全。在运行时,CLR总是知道对象的类型是什么。调用GetType方法可知道对象的确切类型。由于它是一个非虚方法,所有一个类型不可能伪装成另一种类型。例如,Student类不能重写GetType方法返回一个Teacher类型。CLR允许将对象转换为它的实际类型或者它的基类型。C#认为向基类的转换是一种安全的隐式转换。但将对象转换为它的某个派生类时,C#要求开发人员只能进行显式转换,因为这种转换可能在运行时失败。

2023-05-16 19:30:11 102

原创 new 操作符所做的事情

new 操作符没对应的delete操作符,没有办法显式的释放对象分配的内存。CLR采用了垃圾回收机制,能自动检测到一个对象不再被使用,并自动释放该对象的内存。new 执行了所有这些操作之后,返回指向新建对象的一个引用(或指针),

2023-05-15 22:53:02 98 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除