摘要:
文件操作是程序中非常基础和重要的内容,而路径、文件、目录以及I/O都是在进行文件操作时的常见主题,这里想把这些常见的问题作个总结,对于每个问题,尽量提供一些解决方案,即使没有你想要的答案,也希望能提供给你一点有益的思路,如果你有好的建议,恳请能够留言,使这些内容更加完善。主要内容:一、路径的相关操作, 如判断路径是否合法,路径类型,路径的特定部分,合并路径,系统文件夹路径等内容;二、相关通用文件对... 阅读全文
摘要:
1.System.Colloctions中表示集合的行为的接口有:1)ICollection定义所有集合的大小、枚举数和同步方法。派生于IEnumerable它定义了集合类最基本的行为,所有的集合类都实现了这个接口(基接口)但是它的行为太过基本:主要就是一个Count属性,单独实现它没有太大意义2)IEnumerable公开枚举数,该枚举数支持在集合上进行简单迭代它只有一个方法 GetEnumer... 阅读全文
摘要:
集合是OOP中的一个重要概念,C#中对集合的全面支持更是该语言的精华之一。 为什么要用泛型集合? 在C# 2.0之前,主要可以通过两种方式实现集合:a.使用ArrayList 直接将对象放入ArrayList,操作直观,但由于集合中的项是Object类型,因此每次使用都必须进行繁琐的类型转换。 b.使用自定义集合类 比较常见的做法是从CollectionBase抽象类继承一个自定义类,通过对ILi... 阅读全文
摘要:
一、基本概念反射:反射是一个运行库类型发现的过程。通过反射可以得到一个给定程序集所包含的所有类型的列表,这个列表包括给定类型中定义的方法、字段、属性和事件。也可以动态的发现一组给定类支持的借口、方法的参数和其他相关信息如基类、命名空间、数据清单等。二、命名空间 1.System.Reflection命名空间内的各类型(1)Assembly 通过它可以加载、了解和操纵一个程序集(2) Assembl... 阅读全文
摘要:
例子这个东西其实挺难弄得,弄个简单的,虽然能说明问题但却容易让人觉得没实用价值,弄个有实用价值却又往往牵扯很多别的技术甚至牵扯很多业务逻辑,看起来很复杂很难懂。在这里我尽量追求几个有实用价值又不复杂的例子。1、使用反射通过读取配置文件来动态的创建相关类的对象我们先来看看Main函数和需要动态加载的对象在同一个程序集的情况结构图:接口[代码][代码][代码][代码][代码]如果在不同的程序集下,那主... 阅读全文
摘要:
先看一个简单的例子[Table(Name="dbo.[User]")]public partial class User {当C#编译器发现这个属性有一个特性Table时,首先会把字符串Attribute添加到这个名称的后面,形成一个组合名称TableAttribute,然后在其搜索路径的所有命名空间中搜索有相同类名的类。但要注意,如果该特性名结尾是Attribute,编译器就不会把该字符串加到组... 阅读全文
摘要:
Reflection,中文翻译为反射。这是.Net中获取运行时类型信息的方式,.Net的应用程序由几个部分:‘程序集(Assembly)’、‘模块(Module)’、‘类型(class)’组成,而反射提供一种编程的方式,让程序员可以在程序运行期获得这几个组成部分的相关信息,例如:Assembly类可以获得正在运行的装配件信息,... 阅读全文
摘要:
泛型CLR2.0的一个新特性是泛型。泛型是一个很强大的特性,对于集合类而言尤其如此。.NET1.0中的大多数集合类都基于Object类型。.NET从2.0开始提供了实现为泛型的新集合类。泛型不仅限于类,本章还将介绍用于委托、接口和方法的泛型。本章的主要内容如下:●泛型概述●创建泛型类●泛型类的特性●泛型接口●泛型方法●泛型委托●Framework的其他泛型类型9.1概述泛型并不是一个全新的结构,其... 阅读全文