关闭

【C#语法】类和方法的特性Attribute

一、引言                 今天,我们来聊一下C#中的特性Attribute。何为特性Attribute?我们先看一个特性的使用例子,我们定义了一个Human类,但是由于某种原因该类不再被使用,但是我又不想将该类的代码注释或者删除掉,于是我们就可以通过给它赋予Obsolete特性来禁止别人使用: [Obsolete("该类已经过时,不能再使用",true)] pu...
阅读(245) 评论(0)

【C#函数式编程】C#中的函数式编程(三) —— yield关键字的使用

在C#和Python中都有yield关键字,在Python中通过使用yield关键字我们可以得到一个generator生成器,而在C#中使用yield关键字可以得到一个IEnumerable类型的对象,可以理解成C#中的生成器。         IEnumerable对象是一种集合对象,比如List对象、Dictionary对象,可以用foreach进行遍历,而yield关键字的提出就是为了简化...
阅读(230) 评论(0)

【C#函数式编程】C#中的函数式编程(二) —— IEnumerable和IEnumerator使用详解

一、IEnumerable接口         IEnumerable接口可以暴露一个Celltions的元素的迭代器,它只含有一个方法GetEnumerator,这个方法返回一个IEnumerator对象,而通过这个IEnumerator对象,我们就可以遍历整个Celltions中的元素。 二、代码示例         下面的代码,演示如何继承IEnumerable接口和IEnumerat...
阅读(573) 评论(0)

【C#函数式编程】C#中的函数式编程(一) —— =>表达式

一、函数式编程         函数式编程,简单来理解,就是把函数当成是组成一个功能模块最小的单位。相对于之前接触的面向对象的思想,把类对象当成一个功能模块的组成部件,在函数式编程中把函数也当成一个可拆卸的对象。  二、C#中的Lambda表达式=>         Labmda也称作匿名函数,在C#中我们通过一个简单的符号”=>”即可定义一个lamda表达式,下面分别针对不同的=>的使用方...
阅读(358) 评论(0)

【C#语法】详解C#中的反射(Assembly)机制

一 引言         反射机制是C#中比较有特色的一种技术。它使我们编程时可以更加灵活,能够通过类或者方法名称能够很方便的构造类和调用方法,虽然有一些微不足道的性能损失。 我们先来看一下反射的定义:         反射的定义:审查元数据并收集关於它的类型信息的能力,元数据(编辑后的基本数据单元)就是一大堆表,编译器会创建一个类定义表,一个字段定义表,一个方法定义表等,System.Re...
阅读(872) 评论(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...
阅读(638) 评论(0)

【C#语法】C#中强转和as、is的区别

C#是一门强类型语言,一般情况下最好避免将一个类型转换成另一个类型,但是有些时候又不得不进行类型转换。 C#中有三种类型转换(不考虑.Net提供的Parse),如下: 1、使用as操作符转换 2、使用传统c风格的强制转换 3、使用is先做一个转换测试,然后再使用as操作符或者强转。 一、as和强转之间的区别: 1、as转换类型失败时不会抛出异常; 强转类型失败时会抛出异常。 看...
阅读(847) 评论(0)
    个人资料
    • 访问:407169次
    • 积分:6865
    • 等级:
    • 排名:第3767名
    • 原创:293篇
    • 转载:17篇
    • 译文:1篇
    • 评论:65条
    其它平台
    博客专栏