摘要: 3.1 多参数泛型using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace ConsoleApp{ class MoreGenericSample { public static void Main() { czrelation<int, double> sinTable = new czrelation<int, double>(180); for (int i = 0; i < 18... 阅读全文
posted @ 2012-12-10 01:53 streetpasser 阅读(178) 评论(0) 推荐(0) 编辑
摘要: 假设我们有个高档的热水器,我们给它通上电,当水温超过95度的时候:1、扬声器会开始发出语音,告诉你水的温度;2、液晶屏也会改变水温的显示,来提示水已经快烧开了。 现在我们需要写个程序来模拟这个烧水的过程,我们将定义一个类来代表热水器,我们管它叫:Heater,它有代表水温的字段,叫做temperature;当然,还有必不可少的给水加热方法BoilWater(),一个发出语音警报的方法MakeAlert(),一个显示水温的方法,ShowMsg()。using System;using System.Collections.Generic;using System.Text;namespac... 阅读全文
posted @ 2012-12-06 17:20 streetpasser 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 1. @符:让转移字符"\"保持原意,不要转义,如一个地址字符串string path="c:\abc\";默认的"\"是作为转义来使用的,而不是一个真的斜杠字符串所以这个地方要取到地址,正确的写法应该是:string path=@"c:\abc\"; //这里的@让斜杠保持原意,不要转义或者string path="c:\\abc\\"; //不用@ 斜杠表示转义,所以要多加个斜杠 阅读全文
posted @ 2012-12-04 18:50 streetpasser 阅读(175) 评论(0) 推荐(0) 编辑
摘要: 事件的由来我们继续之前的程序:三个方法都定义在Program类中,这样做是为了理解的方便,实际应用中,通常都是 GreetPeople 在一个类中,ChineseGreeting和 EnglishGreeting 在另外的类中。假设我们将GreetingPeople()放在一个叫GreetingManager的类中,那么新程序应该是这个样子的:using System;using System.Collections.Generic;using System.Text;namespace Delegate{ //定义委托,它定义了可以代表的方法的类型 public delegate... 阅读全文
posted @ 2012-12-03 11:16 streetpasser 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 将方法绑定到委托 GreetingDelegate delegate1, delegate2; delegate1 = EnglishGreeting; delegate2 = ChineseGreeting; GreetPeople("Jimmy Zhang", delegate1); GreetPeople("张子阳", delegate2); → GreetingDelegate delegate1; delegate1 = EnglishGreeting; //赋值 delegate1 += ChineseGreeting; //再绑定 Gree 阅读全文
posted @ 2012-11-30 20:19 streetpasser 阅读(268) 评论(0) 推荐(0) 编辑
摘要: 将方法作为方法的参数我们先不管这个标题如何的绕口,也不管委托究竟是个什么东西,来看下面这两个最简单的方法,它们不过是在屏幕上输出一句问候的话语: public void GreetPeople(string name) { // 做某些额外的事情,比如初始化之类,此处略 EnglishGreeting(name); } public void EnglishGreeting(string name) { Console.WriteLine("Morning, " + name); } 暂且不管这两个方法有没有什么实际意义。GreetPeople用于向某人问好,当我们传递代表 阅读全文
posted @ 2012-11-30 19:04 streetpasser 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 1. 追加新工程时的界面, Solution项改为 "Add to Solution" .2. 项目上右键选择Add reference, 在projects选项卡中选择需要引用的项目.3. 项目上右键选择set as startup project, 使其成为初始运行项目.4. 将被引用项目的类型设置为class library. 阅读全文
posted @ 2012-11-30 15:37 streetpasser 阅读(345) 评论(0) 推荐(0) 编辑
摘要: 1. 接口和抽象类有很多共同点, 都是声明变量, 不能被实例化. 并且其中的方法都不提供实现代码.2. 接口的任何派生类型(类或接口)都必须继承该接口定义的所有方法, 并且其派生类如果是非抽象的, 则必须实现接口的所有方法. 抽象类的派生类必须继承其所有抽象方法, 并且其派生类如果是非抽象的, 则必须实现抽象类的所有抽象方法.3. 接口抽象化更高, 接口的方法全是抽象方法, 而抽象类中的方法可以有抽象方法也可以有非抽象方法. 另外, 接口还不能有字段成员.4. 如果派生类既继承了类又继承了接口, 则定义时先写基类再写接口. 如: class creditcard : bankcard,Iloa 阅读全文
posted @ 2012-11-29 15:30 streetpasser 阅读(272) 评论(0) 推荐(0) 编辑
摘要: using System;using System.Collections.Generic;using System.Text;namespace ConsoleApp{ class operatorSample { //public static void Main() //{ // //重载操作符test // operatorTest ot = new operatorTest(); // ot.Run(); // Console.Read(); //} ... 阅读全文
posted @ 2012-11-29 15:17 streetpasser 阅读(305) 评论(0) 推荐(0) 编辑
摘要: 1. 密封类 即不希望类被继承,无派生类。 密封方法 即不允许被重载的方法。2. 密封方法 所在的类 不一定是密封类 (和抽象方法不同) , 该类的派生类中必须原封不动的继承这个密封方法. 密封方法本身也是个重载方法, 即 必须 sealed 和 override 都要有.3. 密封方法不能被重载(override), 但可以被覆盖(new).using System;using System.Collections.Generic;using System.Text;namespace ConsoleApp{ class sealedSample { public... 阅读全文
posted @ 2012-11-29 02:25 streetpasser 阅读(371) 评论(0) 推荐(0) 编辑