![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Language C#
WInScar
这家伙很懒,什么也没留下
展开
-
C#堆栈及托管堆的内存创建机制
堆栈的地址是从高到低的,托管堆的地址是从低到高的。这个部分的创建制止与类的继承本质直接相关,在与创建GC堆内类字段的时候的递归创建以及创建方法表时候的递归创建。 这里对与类成员方法相关的几个关键字:例如abstract , new , override做简单的描述。 方法表先于类型句柄产生。产生过程中,与类成员变量继承时的递归空间分配大同小异。在与几个关键字的处理上略有区别。 对于abstract关键字,在父类中出现,在子类中必须被覆盖,也就是在子类中由override关键字将其覆盖。(过程是递归的,原创 2011-04-09 23:31:00 · 1396 阅读 · 0 评论 -
C#的继承与多态机制
就C#当中的继承与多态机制进行了下探索,此处主要根据三个关键字进行探讨: 1. abstract 2. virtual 3. new 针对abstract关键字,是抽象之意。用来限定类时,类中的方法,不能有方法体;用来限定方法时,同样也不能有方法体,并且在子类中除非继续使用抽象方法,否则必须完成方法体。 针对virtual关键字,是虚之意。简单的用法是用来指示类中的方法可以被子类的同名方法覆盖或者共存。覆盖时,子类中使用override关键字。共存时,使用new关键字。 针对new关键字,是新原创 2011-04-09 23:33:00 · 1708 阅读 · 0 评论 -
C# param关键字的使用
param关键字的实质是:param是定制特性ParamArrayAttribute的缩写,该特性用于指示编译器的执行过程大概可以简化为:编译器检测到方法调用的时候,首先调用不包含ParamArrayAttribute特性的方法,如果存在这种方法就施行调用,如果不存在才调用含有ParamArrayAttribute特性的方法,同时应用方法中的元素来填充一个数组,同时将该数组作为参数传入调用方法。总之就是param就是提示编译器实现对参数进行数组封装,将可变数目的控制由编译器来完成,我们可以方便的从以下示例中原创 2011-04-09 23:39:00 · 10242 阅读 · 0 评论