- 博客(9)
- 收藏
- 关注
转载 C# 学习——程序集
dll和exe文件dll文件里面存储的应该是二进制,它不能直接运行, 不过可以被exe的程序调用。dll文件中存放的是经过编译后的MSIL, 运行时,它会由一个叫JIT的编译器再编译为适合本地运行的二进制,供程序运行。 一个dll/exe文件也叫一个程序集一个程序集中包涵了: PE/COFF、CLR头、 清单、 元数据、 CIL代码、 资源文件PE/COFF: windows操...
2018-10-15 20:09:07
371
原创 c# 托管堆和垃圾回收
托管对基础 在面向对象的环境中,每个类型都代表可供程序使用的一种资源。要使用这些资源,必须为代表资源的类型分配内存。一下是访问一个资源所需要的步骤: 1. 调用IL指令newobj,为代表资源的类型分配内存(一般使用c# new 操作符来完成)。 2. 初始化内存,设置资源的初始状态并使资源可用。类型的实例构造器负责设置初始状态。 ...
2018-10-11 10:41:01
323
原创 c# 迭代器
c# 中实现了IEnumerable接口的类型为可迭代类型。即可利用foreach遍历的类型。 可通过一下两种方式实现自定义的可迭代类型: 1. 手动实现IEnumerator接口(实现其中的 Current属性, MoveNext方法, Reset方法); 具体实现代码如下:public class IterationSampl...
2018-10-10 11:26:04
199
原创 c# 接口
显示接口在c#中,将定义方法的那个接口的名称作为方法名前缀,就会创建显示接口方法实现。在调用显示接口的实现时必须将对象转换为具体的接口才能调用所需的方法: 如下所示: interface IWindow { Object GetMenu(); } interface IRestaurant { Object Ge...
2018-09-27 11:43:08
203
原创 c# 泛型
封闭类型才能创建实例,开放类型不能创建实例;每个封闭类型都有自己的静态字段; 通过泛型实现一个链表: //链表基类 internal class Node { protected Node m_next; public Node(Node next) { this.m_next = nex...
2018-09-17 14:41:31
257
原创 c# 事件
CLR事件模型以委托为基础。委托是调用回调方法的一种类型安全的方式。对象凭借回调方法接受他们订阅的通知。 定义了事件成员的类型能提供以下功能: 1. 方法能登记它对事件的关注 2. 方法能注销它对事件的关注 3. 事件发生...
2018-09-15 11:34:31
375
原创 c# 特性(Attribute)
c#中的特性本质上都是一个类。所有我们自定义的特性都派生于Attribute基类。 仅仅定义特性类,并应用自己想要的所有势力。这样做除了在程序集中生成额外的元数据,没有其他的任何意义。应用程序代码的行为不会有任何的改变。 FCL提供了很多种方式来检测特性的存在。为了简化讨论,让我们聚焦于System.Reflection.CustomAttribut...
2018-09-12 11:10:58
780
原创 c#依赖注入
面向对象设计(OOD)有助于我们开发出高性能、易扩展以及易复用的程序。其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC、DI以及Ioc容器等概念。依赖倒置原则(DIP): 一种软件架构设计的原则(抽象概念)。控制反转(IoC):一种反转流、依赖和接口的方式(DIP的具体实现方式)。依赖注入(DI):IoC的一种实现方式,用来反转依赖(IoC的具体实现方式)...
2018-09-07 16:51:44
1536
原创 angular2 对于DOM元素的获取与操作
为了能够支持跨平台,angular通过抽象层封装了不同平台的差异。 正确操作DOM的方式(用ElementRef和Renderer2)这篇文章将讲述如何使用Renderer2来操作DOM元素。我们可以使用Renderer2对元素的class和style属性进行操作,也可以对元素进行增加、删除、和插入等操作。使用的技术:1. angular4.2.42. TypeScr...
2018-03-13 08:20:29
12790
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人