博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年1月9日

摘要: 从菜鸟刚接触到.net时,菜鸟就知道CLR VIA C#是一本很牛的书,为什么?CSDN会告诉你——总会有人问“学.net什么书籍好?”,这个本没有标准答案的问题,菜鸟却从各种大牛一致的回答中找到了标准答案:C#入门经典—>C#高级编程—>CLR VIA C#,于是乎,对于大牛们的信任,这三本书都躺在菜鸟的床头。虽然菜鸟很菜,但菜鸟喜欢在CDSN、博客园、codeproject(菜鸟英语不堪忍睹,每次都还需要打开Google翻译)上闲逛,属于那种不厚道的看帖不回帖的一员,甚至过了相当长的一段时间都还没有注册,不是菜鸟不想回答,而是菜鸟水平实在不堪忍睹,怕误导人家,更怕关公面前耍大刀 阅读全文

posted @ 2013-01-09 14:00 米粒3 阅读(150) 评论(0) 推荐(0) 编辑

摘要: usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;namespaceFuncDemo{classProgram{staticvoidMain(string[]args){//类似委托功能Func<string,int>test=TsetMothod;Console.WriteLine(test("123"));Func<string,int>test1=TsetMothod;//只需要调用这个类就可以减少重复的代码CallMethod<st 阅读全文

posted @ 2013-01-09 13:18 米粒3 阅读(167) 评论(0) 推荐(0) 编辑

摘要: 在定义泛型类时,可以对客户端代码能够在实例化类时用于类型参数的类型种类施加限制。如果客户端代码尝试使用某个约束所不允许的类型来实例化类,则会产生编译时错误。这些限制称为约束。约束是使用where上下文关键字指定的。下表列出了六种类型的约束:约束说明T:结构类型参数必须是值类型。可以指定除Nullable以外的任何值类型。有关更多信息,请参见使用可空类型(C# 编程指南)。T:类类型参数必须是引用类型,包括任何类、接口、委托或数组类型。T:new()类型参数必须具有无参数的公共构造函数。当与其他约束一起使用时,new()约束必须最后指定。T:<基类名>类型参数必须是指定的基类或派生自 阅读全文

posted @ 2013-01-09 13:16 米粒3 阅读(141) 评论(0) 推荐(0) 编辑

摘要: 反射是用来描述在运行过程中检查和处理程序元素的功能。也就是能够动态处理程序元素。10.1 定制特性定制特性是把定制的元数据 和程序元素关联起来,这些元素是在编译过程中创建的,并且嵌入到程序集中。a.定义一个特性定义特性[AttributeUsage(AttributeTargets.Class|AttributeTargets.Method,AllowMultiple=true,Inherited=false)]publicclassLastModifiedAttribute:Attribute{privatereadonlyDateTimedateModified;privatereadon 阅读全文

posted @ 2013-01-09 11:58 米粒3 阅读(159) 评论(0) 推荐(0) 编辑

摘要: 当元素的个数是动态的,就应使用集合类,集合类一般有List<T>,ArrayList、数组、队列、堆栈、链表等。下面来介绍各种集合的使用方法。9.1 列表对象类型的集合主要位于System.collections命名空间中;泛型集合主要是在System.collections.Generic命名空间中,当然List <T>肯定也都在给命名空间下,下面来介绍列表的使用1.列表初始化List<int> intList = new List<int>() { 1, 2 };定义一个int类型的列表。2.添加一个元素 intList.Add(3);3.添 阅读全文

posted @ 2013-01-09 11:57 米粒3 阅读(186) 评论(0) 推荐(0) 编辑

摘要: 本章节将讲述关于字符串方面的处理问题。7.1 创建字符串如果多次修改一个字符串的话,处理效率会变得效率低下。对于这种情况下,应该使用C#专门处理较长字符串的一个类:system.text.bulider,该类是专门用来处理上述问题的。下面给出使用代码:stringbuilderDemousingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespaceWrox.ProCSharp.StringEncoder{classMainEntryPoint{staticvoidMain(string[]args){StringBui 阅读全文

posted @ 2013-01-09 11:56 米粒3 阅读(161) 评论(0) 推荐(0) 编辑

摘要: 泛型是由2.0引进来的,有了泛型,就不再使用object类了。泛型相当于c++中的模板,泛型是C#语言的一个结构而且是CLR定义的。泛型的最大优点就是提高了性能,减少了值类型和引用类型的拆箱和装箱。8.1 创建泛型类创建泛型类和定义一般类类似,只是要使用泛型类型声明。下面给出例子:泛型简单demousingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Collections;namespaceGenericDemo{//泛型publicclassLinkedListNod 阅读全文

posted @ 2013-01-09 11:56 米粒3 阅读(161) 评论(0) 推荐(0) 编辑

摘要: 本章节主要来讲解关于运算和类型转换的一些问题。5.1 条件运算符条件运算符(?:)也成为三元运算符,也就是if..else结构的简化形式。其语法:condition? true_value:false_value下面给出列子来条件运算符intx=1;strings=x+"";s+=(x==1?"Man":"Men");Console.WriteLine(s);5.2 checked和unchecked运算符checked运算符主要是可以在编译的时候检查代码中的溢出问题。如下面代码:check运算符 byteb=255;checked{ 阅读全文

posted @ 2013-01-09 11:55 米粒3 阅读(193) 评论(0) 推荐(0) 编辑

摘要: 本章节主要讲解委托内容,最后顺便讲下C#事件。C#中的委托,其实和c++中的回调函数差不多的,都是回调方法。6.1 委托定义当在C#中我们想把方法传送给其他方法时候,我们就需要使用委托。一般委托主要用在写通用库类、事件以及线程这几个方面。C#定义委托中声明delegate void DelegateDmop();在上面的语法表示定义了一个委托DelegateDemo,并制定该委托的每个实例都包含一个方法,该方法没有参数,并返回值为void。理解委托的一种好方法是把委托当中给方法签名和返回类型指定名称。下面给出委托一个最简单的例子。delegate简单实例usingSystem;usingSys 阅读全文

posted @ 2013-01-09 11:55 米粒3 阅读(239) 评论(0) 推荐(0) 编辑

摘要: 本章节主要讲解关于继承的一些内容,不会具体讲如何实现继承,只是讲解出现的一些问题。3.1 继承的类型1.实现继承:表示一个类型派生于一个基类型,拥有该类型的所有成员字段和函数。2.接口继承:表示一个类型只继承了函数的签名,没有继承任何实现代码。3.2 实现继承1.virtual虚方法把一个基类函数声明为virtual,该函数就可以派生类中重写了:virtual示例classMyBaseClass{publicvirtualstringMethod()//虚方法{return"thisisvirtualmethod";}}classChildMyClass:MyBaseCla 阅读全文

posted @ 2013-01-09 11:54 米粒3 阅读(171) 评论(0) 推荐(0) 编辑