clr via c# 类型基础

时间:2020-01-30 00:20:37   收藏:0   阅读:114

1,类型转换

2,使用 is 和 as 进行转换

   is指定对象是否兼容常见用法:

 static void Main(string[] args)
        {
            object o1 = new object();
            object o2 = new B();
            object o3 = new D();
            object o4 = o3;
            B b1 = new B();
            B b2 = new D();
            D d1 = new D();
            //B b3 = new object();
            //D d2 = new object();
           if(b1 is D)
            {
                D d2 = (D)b1;//该代码不会运行。
            }

        }

as 则 对对象进行尝试转换,如果失败则为null.

Employee e = o as Employee;
if(e!=null)
{
//操作e
 }

3,关键字影响

C#关键字 类型 方法/属性/事件 常量/字段
abstract 表示不能构造该类实列 表示派生类必须重写并实现该成员
virtual 表示派生类可以重写该成员
override 表示派生类型正重写该成员
sealed 标识该类不能作为基类 表示这个成员不能被派生类型重写。
new

4,CLR如何调用虚方法,属性和事件

虚方法实列方法静态方法
call OK OK

OK

callvirt OK OK

5,const 和 readonly 的区别

const 将生成元数据,嵌入到应用程序的元数据中

readonly 修饰的字段,可以在构造器中进行更改,也可以通过反射技术进行更改,并且其影响应用程序。

6,实列构造器和类

  构造器.ctor ----用于将实列初始化为良好状态

如果没有指定构造器,他将简单调用基类的构造器

public class SomeType{}

// 等价于

public class SomeType{
	public SomeType():base(){}
}

7,类型构造器----类首次被访问时,执行代码

89public class SomeType{}

// 等价于

public class SomeType{
	static SomeType():base(){}
}

8,操作符重载和转换操作符重载

可以查看 Decimal类

9,扩展方法

扩展方法 -----允许定义一个静态方法,并用实列方法的语法来调用它

原文:https://www.cnblogs.com/frogkiller/p/12241835.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!