C#
HymanLiuTS
年过而立,又酸又臭,忙时敲代码,闲时读书写文章。
展开
-
【C#语法】详解C#中的反射(Assembly)机制
一 引言 反射机制是C#中比较有特色的一种技术。它使我们编程时可以更加灵活,能够通过类或者方法名称能够很方便的构造类和调用方法,虽然有一些微不足道的性能损失。我们先来看一下反射的定义: 反射的定义:审查元数据并收集关於它的类型信息的能力,元数据(编辑后的基本数据单元)就是一大堆表,编译器会创建一个类定义表,一个字段定义表,一个方法定义表等,System.Re原创 2016-12-05 15:12:14 · 8737 阅读 · 0 评论 -
【C#语法】C#中调用C++编写的dll
C#中引用C++生成的dll,首先我们需要新建一个类,如类名就叫做DllImport:public class DllImport {}在类中,我们利用DllImport关键字进行dll的引用,格式如下:[DllImport("xxx.dll")] private static extern void xxx函数名(xxx函数);需要注意的是在利用DllImport引入d原创 2016-06-08 18:50:13 · 1181 阅读 · 0 评论 -
【C#语法】C#中强转和as、is的区别
C#是一门强类型语言,一般情况下最好避免将一个类型转换成另一个类型,但是有些时候又不得不进行类型转换。C#中有三种类型转换(不考虑.Net提供的Parse),如下:1、使用as操作符转换2、使用传统c风格的强制转换3、使用is先做一个转换测试,然后再使用as操作符或者强转。一、as和强转之间的区别:1、as转换类型失败时不会抛出异常;强转类型失败时会抛出异常。看原创 2016-04-24 18:26:04 · 5403 阅读 · 0 评论 -
【C#函数式编程】C#中的函数式编程(一) —— =>表达式
一、函数式编程 函数式编程,简单来理解,就是把函数当成是组成一个功能模块最小的单位。相对于之前接触的面向对象的思想,把类对象当成一个功能模块的组成部件,在函数式编程中把函数也当成一个可拆卸的对象。 二、C#中的Lambda表达式=> Labmda也称作匿名函数,在C#中我们通过一个简单的符号”=>”即可定义一个lamda表达式,下面分别针对不同的=>的使用方原创 2017-01-16 10:29:08 · 4885 阅读 · 0 评论 -
【C#函数式编程】C#中的函数式编程(二) —— IEnumerable和IEnumerator使用详解
一、IEnumerable接口 IEnumerable接口可以暴露一个Celltions的元素的迭代器,它只含有一个方法GetEnumerator,这个方法返回一个IEnumerator对象,而通过这个IEnumerator对象,我们就可以遍历整个Celltions中的元素。二、代码示例 下面的代码,演示如何继承IEnumerable接口和IEnumerat原创 2017-01-17 15:50:18 · 2046 阅读 · 0 评论 -
【C#函数式编程】C#中的函数式编程(三) —— yield关键字的使用
在C#和Python中都有yield关键字,在Python中通过使用yield关键字我们可以得到一个generator生成器,而在C#中使用yield关键字可以得到一个IEnumerable类型的对象,可以理解成C#中的生成器。 IEnumerable对象是一种集合对象,比如List对象、Dictionary对象,可以用foreach进行遍历,而yield关键字的提出就是为了简化原创 2017-01-18 18:43:27 · 953 阅读 · 0 评论 -
【C#语法】类和方法的特性Attribute
一、引言 今天,我们来聊一下C#中的特性Attribute。何为特性Attribute?我们先看一个特性的使用例子,我们定义了一个Human类,但是由于某种原因该类不再被使用,但是我又不想将该类的代码注释或者删除掉,于是我们就可以通过给它赋予Obsolete特性来禁止别人使用: [Obsolete("该类已经过时,不能再使用",true)] pu原创 2017-07-03 20:28:36 · 6145 阅读 · 1 评论 -
【C#语法】C#中的托管资源和非托管资源
一 托管资源和非托管资源托管资源,顾名思义,就是依托在.net平台,在托管堆中创建,它的释放不由人工进行干预,而是由.net的垃圾回收器GC自动进行释放。相对于托管资源,非托管资源主要是操作系统级别的资源,.net平台无法对其释放,需要我们手动进行资源的回收。非托管资源一般对应于windows中的内核对象,常见的非托管资源如下所示:原创 2017-12-11 11:13:29 · 911 阅读 · 2 评论