![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
c#
文章平均质量分 65
液态的新兰
这个作者很懒,什么都没留下…
展开
-
c# 特性(Attribute)
c#中的特性本质上都是一个类。所有我们自定义的特性都派生于Attribute基类。 仅仅定义特性类,并应用自己想要的所有势力。这样做除了在程序集中生成额外的元数据,没有其他的任何意义。应用程序代码的行为不会有任何的改变。 FCL提供了很多种方式来检测特性的存在。为了简化讨论,让我们聚焦于System.Reflection.CustomAttribut...原创 2018-09-12 11:10:58 · 633 阅读 · 0 评论 -
c#依赖注入
面向对象设计(OOD)有助于我们开发出高性能、易扩展以及易复用的程序。其中,OOD有一个重要的思想那就是依赖倒置原则(DIP),并由此引申出IoC、DI以及Ioc容器等概念。依赖倒置原则(DIP): 一种软件架构设计的原则(抽象概念)。控制反转(IoC):一种反转流、依赖和接口的方式(DIP的具体实现方式)。依赖注入(DI):IoC的一种实现方式,用来反转依赖(IoC的具体实现方式)...原创 2018-09-07 16:51:44 · 1480 阅读 · 0 评论 -
c# 泛型
封闭类型才能创建实例,开放类型不能创建实例;每个封闭类型都有自己的静态字段; 通过泛型实现一个链表: //链表基类 internal class Node { protected Node m_next; public Node(Node next) { this.m_next = nex...原创 2018-09-17 14:41:31 · 199 阅读 · 0 评论 -
c# 事件
CLR事件模型以委托为基础。委托是调用回调方法的一种类型安全的方式。对象凭借回调方法接受他们订阅的通知。 定义了事件成员的类型能提供以下功能: 1. 方法能登记它对事件的关注 2. 方法能注销它对事件的关注 3. 事件发生...原创 2018-09-15 11:34:31 · 292 阅读 · 0 评论 -
c# 接口
显示接口在c#中,将定义方法的那个接口的名称作为方法名前缀,就会创建显示接口方法实现。在调用显示接口的实现时必须将对象转换为具体的接口才能调用所需的方法: 如下所示: interface IWindow { Object GetMenu(); } interface IRestaurant { Object Ge...原创 2018-09-27 11:43:08 · 149 阅读 · 0 评论 -
C# 学习——程序集
dll和exe文件dll文件里面存储的应该是二进制,它不能直接运行, 不过可以被exe的程序调用。dll文件中存放的是经过编译后的MSIL, 运行时,它会由一个叫JIT的编译器再编译为适合本地运行的二进制,供程序运行。 一个dll/exe文件也叫一个程序集一个程序集中包涵了: PE/COFF、CLR头、 清单、 元数据、 CIL代码、 资源文件PE/COFF: windows操...转载 2018-10-15 20:09:07 · 332 阅读 · 0 评论 -
c# 迭代器
c# 中实现了IEnumerable接口的类型为可迭代类型。即可利用foreach遍历的类型。 可通过一下两种方式实现自定义的可迭代类型: 1. 手动实现IEnumerator接口(实现其中的 Current属性, MoveNext方法, Reset方法); 具体实现代码如下:public class IterationSampl...原创 2018-10-10 11:26:04 · 145 阅读 · 0 评论