摘要: Path 类 对包含文件或目录路径信息的String实例执行操作。 1.Path.GetExtension 方法 ——返回指定的路径字符串的扩展名。 public static string GetExtension(string path)string fileName = @"C:\mydir.old\myfile.ext";string path = @"C:\mydir.old\";string extension;extension = Path.GetExtension(fileName);Console.WriteLine("Ge 阅读全文
posted @ 2013-07-15 18:38 花落红尘 阅读(1894) 评论(0) 推荐(0) 编辑
摘要: File 类 提供用于创建、复制、删除、移动和打开文件的静态方法,并协助创建FileStream对象。 1. File.Exists ——确定指定的文件是否存在。 public static bool Exists(string path)string curFile = @"c:\temp\test.txt";Console.WriteLine(File.Exists(curFile) ? "File exists." : "File does not exist."); 2. File.AppendAllText 方法 ——将指定 阅读全文
posted @ 2013-07-15 14:58 花落红尘 阅读(2578) 评论(0) 推荐(1) 编辑
摘要: .Net平台最基础的容器就是System.Array 类。C#数组允许我们定义一组固定上限的同一类型的项(包括System.Object的数组,它本质上标识任何类型的数组)。 虽然通常这可以满足我们的要求,但是在很多时候我们需要更灵活的数据结构,比如动态增长和收缩的容器或者容器只可以保存符合某个条件的对象。 自从.NET 平台第一次发布以后,程序员经常使用System.Collections 命名空间来以更灵活的方式管理数据,然而自从.Net2.0发布之后,C#编程语言就增强了,开始支持泛型(字面意思通用类型)。基于此,在基础类库中引入了一个以集合为中心的新命名空间:System.Col... 阅读全文
posted @ 2013-06-03 17:05 花落红尘 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 在学习的过程中遇到困惑,不理解? 那就先把它记住,狠狠地记住,就像万有引力,它是那样的,程序语言也是,它就是这样设计的,记清楚也就知道了。 接口标志类的类别(type of class)。把不同类型的类归于不同的接口,可以更好的管理他们。OO的精髓是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++、java、c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。(cowboy的名言是“抽象就是抽去像的部分”,看似调侃,实乃至理)。 接口简单理解就是一种约定,使得实现接口的类或结构在形式上保持一致,使程序更加清晰和条理化。 ... 阅读全文
posted @ 2013-06-01 17:54 花落红尘 阅读(2217) 评论(3) 推荐(2) 编辑
摘要: C# 是在编译时静态类型化的,因此变量在声明后就无法再次声明,或者无法用于存储其他类型的值,除非该类型可以转换为变量的类型。1. 隐式类型转换 隐式转换,就是系统默认的转换,其本质是小存储容量数据类型自动转换为大存储容量数据类型,该转换是一种安全类型的转换,不会导致数据丢失,因此不需要任何特殊的语法。 下面是 .NET 数据类型之间的C#隐式转换列表: 2.显式类型转换 显式类型转换,即强制类型转换。显式转换需要强制转换运算符,而且强制转换会造成数据丢失。源类型目标类型sbytebyte,ushort,uint,ulong,或charbytesbyte或charshortsbyte... 阅读全文
posted @ 2013-06-01 14:49 花落红尘 阅读(621) 评论(1) 推荐(0) 编辑
摘要: "一次编码,多次使用",是引入泛型的根源。 我们在编写程序时,经常遇到两个模块的功能非常相似,只是一个是处理int数据,另一个是处理string数据,或者其他自定义的数据类型,但我们没有办法,只能分别写多个方法处理每个数据类型,因为方法的参数类型不同。泛型的出现就是专门解决这个问题的,在方法中传入通用的数据类型,使代码可以进行合并。 在公共语言运行时和 C# 语言的早期版本中,通用化是通过在类型与通用基类型Object之间进行强制转换来实现的,泛型提供了针对这种限制的解决方案。通过创建泛型类,可以创建一个在编译时类型安全的集合。 使用非泛型集合类的限制可以通过编写一小段程序 阅读全文
posted @ 2013-05-31 18:19 花落红尘 阅读(174) 评论(0) 推荐(0) 编辑
摘要: 当类或结构创建时,其构造函数调用,它们通常用于初始化新对象的数据成员。一、默认构造函数在下面的示例中,使用一个简单的构造函数定义了名为Test的类。然后使用new运算符来实例化该类。在为新对象分配内存之后,new运算符立即调用Test构造函数。class Test{ public int x, y; public Test() { x =1; y = 2; }}class MainClass{ static void Main() { Test p1 = new Test(); Console.Writ... 阅读全文
posted @ 2013-05-28 18:10 花落红尘 阅读(1040) 评论(2) 推荐(0) 编辑
摘要: 在结构声明中,除非字段被声明为 const 或 static,否则无法初始化。结构不能声明默认构造函数(没有参数的构造函数)或析构函数。结构在赋值时进行复制。将结构赋值给新变量时,将复制所有数据,并且对新副本所做的任何修改不会更改原始副本的数据。在使用值类型的集合(如 Dictionary<string, myStruct>)时,请务必记住这一点。结构是值类型,而类是引用类型。与类不同,结构的实例化可以不使用new运算符。结构可以声明带参数的构造函数。一个结构不能从另一个结构或类继承,而且不能作为一个类的基。所有结构都直接继承自System.ValueType,后者继承自Syste 阅读全文
posted @ 2013-05-27 17:18 花落红尘 阅读(118) 评论(0) 推荐(0) 编辑
摘要: Static ——当一个方法被声明为Static时,这个方法是一个静态方法,编译器会在编译时保留这个方法的实现。也就是说,这个方法属于类,但是不属于任何成员,不管这个类的实例是否存在,它们都会存在。就像入口函数Static void Main,因为它是静态函数,所以可以直接被调用。virtual —— 标注此方法可以重写,它是一个虚拟方法,直到你使用ClassName variable = new ClassName();声明一个类的实例之前,它都不存在于真实的内存空间中。这个关键字在类的继承中非常常用,用来提供类方法的多态性支持。abstract —— 抽象方法声明使用,是必须被派生类覆写的 阅读全文
posted @ 2013-05-25 18:27 花落红尘 阅读(820) 评论(0) 推荐(0) 编辑
摘要: 先介绍目前在ECMAScript中使用最广泛,认同度最高的默认模式。1.组合使用构造函数及原型function Person(name,age,job){ this.name = name; this.age = age; this.job = job; this.friends = ["Shelby","Court"];}Person.prototype = { constructor : Person, sayName : function(){ alert(this.name); }}var person1 = new Person... 阅读全文
posted @ 2013-05-20 15:06 花落红尘 阅读(2010) 评论(5) 推荐(4) 编辑