摘要:定义:所谓泛型,即通过参数化类型实现在同一份代码上操作多种类型的数据,泛型编程是一种范式的转化(在这里体现为类型的晚绑定),他利用参数化类型,将类型抽象化,从而实现代码的灵活复用,精简代码。泛型的好处: a.减少了对对象进行装箱和拆箱所导致的性能成本,提高了效率。 b.赋予了代码更强的类型安全。 c.实现了更为灵活的代码复用。注:1.NET参数化类型不是编译(JIT编译)时被实例化,而是运行时被实例化。 2.由微软在产品文档中提出建议,所有的泛型参数名称都以T开头,这是作为一种编码的通用规范。在定义泛型时,可以对客户端代码在实例化类时用于类型参数的类型施加一些限制,如果客户端代码尝试使用某..
阅读全文
摘要:在程序中,当我们需要动态的去加载程序集的时候(将对程序集的引用由编译时推移到运行时),反射是一种很好的选择。反射为.NET类型提供了高度的动态能力,包括:元数据的动态查询、绑定与执行、动态代码生成。常用的反射类型包含在System.Reflection和System.Reflection.Emit,反射包括程序集反射、类型反射、接口反射、类型成员反射。编译时加载程序集下面先从一个简单的例子说起,假如我们有一个Point类如下所示:using System;public class Point{ public int x; public int y; public voi...
阅读全文
摘要:Linq to DataSet将Linq与ADO.NET集成,通过ADO.NET获取数据,然后通过Linq进行查询,从而实现对数据的复杂查询,Linq to DataSet可以理解为通过Linq对DataSet中保存的数据进行查询,一般den为以下几个步骤:1.获取DataSet或DataTable数据源,Linq to DataSet通过Linq查询DataSet或DataTable中的数据,所以首先要准备DataSet或DataTable数据源,可以通过ADO.NET直接从数据库中获取,也可以通过XML技术从XML文件中获取,也可以从其它任何形式的数据源获取数据,甚至可以直接在内存中创建并
阅读全文
摘要:异常处理有一个非常典型的结构,即try{}catch(){}finally{}语句,try语句块中运行正常的逻辑,如果正常的逻辑出错,则会去执行catch块中的代码,finally块中的代码不管正常的逻辑是否出错,都会被执行。在C语言的时代是没有异常处理的,C中是通过函数返回值来进行异常处理的,这样的话正常的业务逻辑和错误处理的业务逻辑放在一起,这是一种非常差的程序结构,不易于程序的维护,同时程序的错误会隐藏很深。下面我们来看一个异常处理的例子,首先不做任何的异常处理using System;class Library{ public static void Print() {...
阅读全文