posts - 557, comments - 7266, trackbacks - 375, articles - 9
  博客园 :: 首页 :: 新随笔 :: 订阅 订阅 :: 管理

公告

共14页: 上一页 1 2 3 4 5 6 7 8 9 下一页 末页 

2013年5月30日

摘要: 软博会是我国软件和信息技术服务业领域内规模最大、持续时间最长、最具影响力的专业盛会,自1997年以来已举办十六届,对于展示软件行业形象,加强业界交流,拓展市场合作,促进产业发展,起到了积极的推动作用。本次软博会以“创新驱动应用引领、服务经济社会发展”为主题,重点围绕云计算、物联网、移动互联、大数据、智慧城市等热点领域, 吸引了很多知名软件企业参会,学云网也是其中之一。阅读全文

posted @ 2013-05-30 15:04 天轰穿 阅读(133) 评论(0) 编辑

2013年5月29日

摘要: 学云网(www.ixueyun.com) “编程可以如此简单·校园技术之旅” 第一站(川渝线)来到“科技城”绵阳,在西南科技大学、绵阳职业技术学院一共举行了两场活动。阅读全文

posted @ 2013-05-29 17:40 天轰穿 阅读(165) 评论(0) 编辑

2013年5月27日

摘要: 全球经济发展正在进入一个新的变革期,以智能化、个性化、服务化、体验化为特征的新经济模式正在颠覆我们原有的生活。而这场经济变革与社交、云计算、大数据、移动以及物联网等密切相关,正因为这些技术和工具发展,加速了新经济的变革到来,也巨大的改变着我们的生活。从大维度讲,这场变革主要以IT技术为支撑,因此对于灵活应用技术的创新型人才也变得迫切需求。反观2013年就业压力,却有699万应届毕业生遭遇最难就业年。究其原因,大部分学生只接受了高校系统性教学计划和理论知识的培养,而缺乏岗位的相关实际技能和经验。为了辅助高校教学培养计划,打通高校毕业生与企业实际用人需求之间的通道,学云网整合了产业、高校、企业和各阅读全文

posted @ 2013-05-27 13:29 天轰穿 阅读(141) 评论(0) 编辑

2013年5月20日

摘要: 2013勤工俭学计划地址:http://www.ixueyun.com/active/20130513?tkid=26251阅读全文

posted @ 2013-05-20 14:21 天轰穿 阅读(179) 评论(0) 编辑

2013年5月16日

摘要: 有一群人对计算机兴致盎然,却总不得要领,所以本期天轰穿送给编程初学者的是:在编程路上该如何选择和学习语言?阅读全文

posted @ 2013-05-16 16:22 天轰穿 阅读(417) 评论(2) 编辑

2013年4月17日

摘要: 现在注册学云网即可免费领取SQL Server 2008数据库相关教程阅读全文

posted @ 2013-04-17 14:25 天轰穿 阅读(329) 评论(1) 编辑

2013年4月6日

摘要: 本文分为两个部分: 1、教育和网络结合的必然以及其出口方向 2、网络电子课件要达到课堂实际效果和必备条件 ps:以下观点是我个人从06年到现在的一些总结,并不代表一定正确,但经过实践,至少可信度在75%; 中国人现在堪称相当之不爱学习,从3岁到60岁,小孩和青年(25岁前)人钻到各种科技产品(手机、电脑)和时髦流行的娱乐中,25岁或者30岁以后的人,则95%的都TMD钻到钱眼里面,又想赚钱,又啥都没有,于是被逼学习的人都是追求“短平快”。虽然我们都知道,个人的能力其实是知识沉淀、综合后的表现形式,而这需要一个漫长的学习过程,根本不是吃“三月肥”就能做到的。阅读全文

posted @ 2013-04-06 13:58 天轰穿 阅读(370) 评论(0) 编辑

2013年3月28日

摘要: 2013年让人最欣慰的事情莫过于学云网很多学员已经找到高薪工作,还在学习的学员们也要加油哦!给大家分享一下一学员学习C#的学习笔记,以下是转载:学习无止境,只要找对方法,即使没有基础,编程亦不是难事。以下是本人学习《VS2010轻松学习C#-从零到深入-天轰穿.NET趣味编程》的学习笔记,现在分享给大家,希望对没有基础,或者有点基础想学习C#的朋友们,有所帮助:学习网址:http://www.ixueyun.com/lessons/detail-lessonId-518.html阅读全文

posted @ 2013-03-28 14:00 天轰穿 阅读(461) 评论(1) 编辑

2013年3月12日

摘要: 说心里话。。。送给马上要找工作和已经工作两年在迷茫的同学们。。。。。“学习是一个很漫长的过程,是我们每个人需要用一生去坚持的一件事业,希望大家一定不要浮躁。在这个过程中,不要急于去同时接触太多的知识,这只会让你的学习效率更低。阅读全文

posted @ 2013-03-12 13:31 天轰穿 阅读(674) 评论(1) 编辑

2013年2月27日

摘要: 在C#集合内,foreach可以隐藏集合类型的内部实现方法,从而更加有效地处理集合类型元素。通过foreach循环语句,可以循环列举某集合内的元素,并对各元素执行一次相关的嵌入语句。foreach的具体使用格式如下:foreach(类型 迭代变量in被迭代的表达式或集合变量) {处理语句 }其中,通过类型和迭代变量来声明语句的迭代变量。C#中的迭代变量,相当于某范围内覆盖整个嵌入语句的只读局部变量。当在foreach语句执行时,迭代变量表示当前正在为其执行迭代的集合元素。在使用foreach语句时,必须注意如下3点。如果运行foreach处理语句试图修改迭代变量值,或将变量值作为ref参数或o阅读全文

posted @ 2013-02-27 14:21 天轰穿 阅读(911) 评论(2) 编辑

2013年2月26日

摘要: 小天:如果是申明和初始化的时候都没有给值,事后如何给?老田:你的意思是需要访问数组吧?数组在声明和初始化后,就可以使用索引器访问其中的元素了。不过需要注意数组只支持有整型参数的索引器。通过索引器传送元素号,就可以访问数组。索引器总是以0开头,表示第一个元素。可以传送给索引器的最大值是元素个数减1,因为索引从0开始。在下面的例子中,数组myInt3用7个整型值声明和初始化。用索引器0、1、2、3、4、5、6就可以访问该数组中的元素。int[] myInt3 = { 11, 12, 30, 53, 21, 38, 27 };//访问数组 inti1 = myInt3[0];//将数组myInt3中阅读全文

posted @ 2013-02-26 16:08 天轰穿 阅读(343) 评论(0) 编辑

2013年2月23日

摘要: 简单数组即是一组相同类型数据(前两节课讲到的那些数据类型)组合在一起,使用一个通用的名称,通过分配的下标访问的数据集合中的元素下图显示系统内存中的数组结构,可以看到数组的下标是从0开始的。如图5-1 图5-1 也就是说,无论数组中的每一个项的值是多少,但是访问它的时候都是根据其所在的下标。而所谓的下标则是指在数组中的位置。这个下标是从0开始依次往后数的。数组的申明在声明数组时,应先定义数组中元素的类型,其后是一个空方括号和一个变量名。例如,下面声明了一个包含整型元素的数组: string[] Mystr; //申明一个string类型的数组 int[] Myint; //申明一个int类型数组阅读全文

posted @ 2013-02-23 14:02 天轰穿 阅读(445) 评论(0) 编辑

2013年2月21日

摘要: 本章学习线路 本章以最简单的一维数组入手讲解数组的基本概念,然后逐步进入多维数组和锯齿数组的讲解。接着引入Array类的使用和概念。这些都没有太多深入的实例,接着引入了ArrayList和泛型,并对这两个知识点做了比较深入的讲解和使用。然后对泛型的特征、泛型接口和泛型方法的编写与使用做了深入讨论。最后对于这种集合的接口进行说明。接着进入枚举的概念、申明以及使用进行讲解。 本章的核心就是网吧管理和专业课程管理这两个较之前例题都更完善的实例。只要把这两个实例都弄懂了,也就可以说对集合的使用入门了。知识回顾 上一章我们学习的内容是C#的重点,面向对象的三大特性:封装、继承、多态。下面我们随机抽一些上阅读全文

posted @ 2013-02-21 13:25 天轰穿 阅读(171) 评论(0) 编辑

2013年2月20日

摘要: 小天:我看来看去,练来练去,总觉得接口和抽象类区别不大。 老田:事实上差别还是蛮大的,仅仅从使用方面来说。接口主要是用来定义两个程序通信的契约;而抽象类则是用来封装对象间公用的行为。二者在设计起初的目标完全不同,可惜在实际应用中被太多的人误解。因为涉及到多个程序之间的通信,接口就是规定了这个程序那些东西必须要公开。 小天:为什么要公开? 老田:因为程序模块之间需要配合。而不是做出一个个完全独立的程序。那么程序之间的衔接通过什么呢?当然是接口。所以从角度上来说接口和抽象类最大的不同在于用处的不同。接口是对外,而抽象类则是对内规划程序的方向。我们可以理解为接口主外,而抽象类主内。咱们还是先单独分析阅读全文

posted @ 2013-02-20 13:59 天轰穿 阅读(262) 评论(0) 编辑

2013年2月4日

摘要: 小天:接口主要是给类做父类的吗?它还能不能继承其它的接口呢? 老田:当然是可以的,不过接口继承接口会有一个问题。通过前面的介绍也知道了,接口本身是不会去实现任何方法的。它只是规定了要实现那些方法,以及要什么样的材料(参数),能够生产什么样的产品(返回值)。于是,接口继承接口的结果就是越往后的接口所带的成员就越多了。例如,下面代码, interface I_2_A //声明第一个接口 { int A { get; set; } //声明一个属性 } interface I_2_B //声明第二个接口 { int Count(int i, int j); //声明一个方法 } interface 阅读全文

posted @ 2013-02-04 14:05 天轰穿 阅读(285) 评论(0) 编辑

2013年2月3日

摘要: 大话数据库(IT异人天轰穿作品,嬉笑怒骂中轻松掌握数据库)(预售商品:预计2月5日到货), 全国各大书店预计春节后才能陆续到货,敬请关注 京东: http://url.cn/BwXqc8 当当: http://url.cn/BPj00P阅读全文

posted @ 2013-02-03 15:51 天轰穿 阅读(1293) 评论(1) 编辑

2013年1月30日

摘要: 申明在接口中的方法,不可以包含方法的内容区块,简单来说就是不能有大括号存在。而属性,却有大括号,这里属性则和前面讲到的类中的属性定义差不多,但是它的大括号内也仅仅接受“get和set”,其他的代码还是免谈。而注释的方式却和在类中的注释一样的写法注意,在接口中必须为每个类成员写注释。接口基本上不具备继承的任何具体特点,它仅仅承诺了能够调用的方法,所以接口的申明方式和类其实是有很大区别的。例如下面:首先向项目中添加一个接口文件【在解决方案资源管理器中指定的项目上点击鼠标右键à添加新项à选择“接口”à命名为“IBook.cs”】,然后接口中代码如下using Syste阅读全文

posted @ 2013-01-30 14:13 天轰穿 阅读(194) 评论(0) 编辑

2013年1月29日

摘要: 在开始讲接口之前,我需要给你明确一个观点,当然,这可能也只代表我的一家之言“接口用来定义两个对象通信的契约;抽象类用来封装一组对象的公用行为规范。”之所以先跟你明确这点是因为相对于接口和抽象类的误解、误用、争论实在太多了,每个人看起来都有道理,但其实又都被人怀疑,当然这其中也包括我。之所以这样,其实也是因为这两个知识点相识之处非常多。如果你绝对是一个零基础的初学者,你暂时不用考虑将这两者混合起来使用,你只需要将每一种学懂就行。否则的话,你会觉得仅仅是这两个知识点就足以让你放弃学习了。抽象类必须为所有接口成员提供实现。实现接口的抽象类可以将接口方法映射到抽象方法上。例如: interface I阅读全文

posted @ 2013-01-29 13:32 天轰穿 阅读(551) 评论(0) 编辑

2013年1月28日

摘要: 小天:除了使用分部类的方式,还有什么办法可以扩展已有的类没有?老田:还有许多方法扩展类。如果有类的源代码,使用继承(后面章节讨论)就是给对象添加功能的好方法。但如果没有源代码则可以使用扩展方法,扩展方法使您能够向现有类型“添加”方法,而无需创建新的派生类型、重新编译或以其他方式修改原始类型。扩展方法是一种特殊的静态方法,但可以像扩展类型上的实例方法一样进行调用。换句话说,它允许改变一个类,但不需要类的源代码。扩展方法是静态方法,是类的一部分,但实际上没有放在类的源代码中。还记得在本章开始的那个oopTool命名空间下的User类吧。现在我们再新的项目中去引用oopTool。但是接下来,我们需要阅读全文

posted @ 2013-01-28 14:53 天轰穿 阅读(215) 评论(0) 编辑

2013年1月25日

摘要: 小天:分部类,是不是指同一个类的代码分布在多个类文件中呢?和继承是不是一回事? 老田:你说的这个不是一回事。继承那是多个类之间的玩法,这个和文件之间是没有关系的。还记得前面我们说到过,类名字和文件名字不必相同(但最好是相同的)。其实前面的实例中也多次看到,在一个文件中是可以放多个类的。 至于你说让多个文件共同完成一个类。我想你要表述的应该是一个类的代码分布在多个文件中吧? 这个需要使用partial关键字来完成。partial关键字允许把类、结构或接口放在多个文件中。一般情况下,一个类存储在单个文件中。但有时,多个开发人员需要访问同一个类,或者某种类型的代码生成器生成了一个类的某部分,所以把类阅读全文

posted @ 2013-01-25 14:07 天轰穿 阅读(151) 评论(0) 编辑

2013年1月24日

摘要: 小天:有的时候,我们希望临时保存一组数据,而每组数据又都是有多个键值对组成的,这个时候,我们咋办呢?老田:可以用.NET3.0以后出来的一个新特性 – 匿名类型。第2章讨论了var关键字,用于表示隐式类型化的变量。var与new关键字一起使用时,可以创建匿名类型。匿名类型只是一个继承了Object的、没有名称的类。该类的定义从初始化器中推断,类似于隐式类型化的变量。如果需要一个对象包含某个人的姓名、年龄和性别等信息,则声明如下: var Worker = new { Name = "天轰穿", Age = 30, Sex = "男" };这会生成一个包含阅读全文

posted @ 2013-01-24 13:29 天轰穿 阅读(140) 评论(0) 编辑

2013年1月23日

摘要: 包含类型是在另一个对象中做数据成员的对象类型; 嵌套类型是一个类完整的包含了在另一个类;前面我们说可以利用传递参数达到静态成员调用非静态成员的效果.那么今天我们说的包含类型则可以将一个类中的数据成员定义为从另一个类中派生出来的对象.例如, public class A //创建一个类,下面类中我们会创建一个他这个类型的私有变量 { private string val1; //创建一个私有变量 public A(string str) //定制一个构造函数 { val1 = str; //为它赋上传进来的值 } public string Val1 //定制一个属性 { get { retu.阅读全文

posted @ 2013-01-23 13:23 天轰穿 阅读(128) 评论(0) 编辑

2013年1月22日

摘要: 前面提到,所有的.NET类都派生于System.Object。实际上,如果在定义类时没有指定基类,编译器就会自动假定这个类派生于Object。本章没有使用继承,所以前面介绍的每个类都派生于System.Object(如前所述,对于结构,这个派生是间接的:结构总是派生于System.ValueType,System.ValueType派生于System.Object)。其重要性在于,除了自己定义的方法和属性外,还可以访问为Object定义的许多公共或受保护的成员方法。这些方法可以用于自己定义的所有其他类中。如图4-21 图4-21 小天:对哦,这几个方法,我看所有的类,包括我们自己定义的类都自带阅读全文

posted @ 2013-01-22 15:54 天轰穿 阅读(173) 评论(0) 编辑

2013年1月21日

摘要: 学习网址:http://www.ixueyun.com/community/active.php?mod=20130121IT项目能力提升计划(一):网络编程(WCF、Socket编程)纯项目组合进阶课程项目背景:本系统是从国家某三甲医院的“智慧医院”项目中抽出的核心子系统,项目价值1140万元。即时通信,则是采用了基于服务器和客户端通信(QQ、MSN类)的网络原理。学习成果:通过本课程的学习,将清楚了解多个系统如何通过WCF、Socket等网络通信技术联合工作的底层原理,掌握商业软件开发流程,以及第三方开源组建的配置和应用。IT项目能力提升计划(二):智能办公行业软件(OA、ERP、CRM、阅读全文

posted @ 2013-01-21 16:37 天轰穿 阅读(215) 评论(0) 编辑

2013年1月18日

摘要: 抽象类:又叫抽象基类(之所以说是抽象基类,是因为它仅用于继承用途):它在定义的时候使用 abstract 关键字标记的一般类.他可包含一般类所包含的所有特性,例如,字段,属性,方法,另外他还包含一个很特殊的方法,叫抽象方法(这些方法基本上是没有执行代码的签名,而派生于该类的的类就必须提供执行的代码).同时,抽象类不能被实例化,他主要用在类的定义和部分实现这方面,所以它需要在扩充类中完整的扩充并实现功能. 抽象方法:当类中的方法在声明的时候加上 abstract 关键字的时候,他就被我们称为抽象方法(abstract method)。 小天:等等,按照你这种说法,我没觉得有学习这个东西的必要。反阅读全文

posted @ 2013-01-18 15:10 天轰穿 阅读(174) 评论(0) 编辑

2013年1月17日

摘要: 小天:上面你说了个用new可以隐藏基类方法,这个怎么说?老田:在用作修饰符时,new 关键字可以显式隐藏从基类继承的成员。隐藏继承的成员时,该成员的派生版本将替换基类版本。虽然可以在不使用 new 修饰符的情况下隐藏成员,但会生成警告。如果使用 new 显式隐藏成员,则会取消此警告,并记录要替换为派生版本这一事实。小天:哦,明白了,也就是说用virtual修饰的成员还是存在的,只是成为了多态中的一种“态”。而使用new关键字则实实在在是将基类的方法给替换掉了,对吧?老田:是的,若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并使用 new 修饰符修饰该成员。例如: public cla阅读全文

posted @ 2013-01-17 13:13 天轰穿 阅读(140) 评论(0) 编辑

2013年1月16日

摘要: 老田: 所谓虚成员就是指在基类中申明了方法、属性、索引器或事件,也做一个最简单的处理,但是无法预料在派生类中该方法是否需要被改写。那使用virtual关键字将成员申明为虚成员。这就使它们可以在派生类中被重写。例如,此方法可被任何继承它的类重写。 小天:可以来个比较实际,好用的实例不?你上面的那个汽车类(4.9.1的第二个示例),我想了很久才想到用一个汽车经销商卖车情况来做示例。 老田:好嘛,前面不是写了一个计算面积的类吗?不过那个类太简单了,下面我们做一个可以计算多种形状面积的类库。类关系图如图4-29 图4-29 根据上面的实例,尝试自己先写写,然后在对比下面的代码: //---------阅读全文

posted @ 2013-01-16 13:16 天轰穿 阅读(206) 评论(1) 编辑

2013年1月15日

摘要: 说到虚方法,这就不得不说到C#三大特性中的一个名字最为奇怪的,那就是多态(我也常常把这叫变态)。所谓多态性,就是程序中同一方法对不同类型的变量有不同语义解释的现象。在.NET中,类的多态性主要表现为方法的重写(Overriding)和方法的重载(Overloading)。 重载前面已经讲过了,这里就不再继续。我们先来看下多态的具体概念,接着讲到多态的另外一种实现方法,也就是虚方法以及重写虚方法。多态:面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方法,在这种场合下,多态性作用就体现出来了,这阅读全文

posted @ 2013-01-15 13:19 天轰穿 阅读(145) 评论(0) 编辑

2013年1月14日

摘要: 老田:接着来回答你的第三个问题。如何去修改父类中已经写死的方法呢?要回答这个问题之前,我们先来看看下面这几种申明和实例化的方式,判断下对不对 Truct tc = new Truct(); //实例化一个卡车类 Car c = new Truct(); //卡车 是 车 对不对? Truct tc2 = c; //车 是 卡车 对不对?小天:我试着写了下,第二行是对的,但是第三行错误,为什么呢?老田:是的,用任意子类都可以实例化对象去实例化成一个基类型的对象。因为基类型包含了这些子类型。相反,如下代码就有问题了。 Truct tc2 = c; //错误,怎么能说车就是卡车呢?那轿车算什么? /阅读全文

posted @ 2013-01-14 13:31 天轰穿 阅读(268) 评论(0) 编辑

2013年1月11日

摘要: 2013蛇年的到来,预示着互联网软件行业又迎来了新的挑战,对于已经进入或者即将进入软件行业的同仁们来说也是一场新的挑战。不论你是学习java,.net,android软件测试 还是UI设计,你都需要在2012这个末日后的2013创造出自己的价值。 职位薪资示意图以上是近几年职位薪资示意图,2013是一个基准点,我们应该如何去挑战蛇年高薪岗位呢?下面我们就来一一推荐:推荐NO.1:【DOT.NET工程师系列】零基础到WinForm应用程序员初级班与传统培训的区别:学习方式灵活:可在线学习,也可下载课程到本地学习,真正做到随时随地学习!性价比最高:仅为传统培训10%...阅读全文

posted @ 2013-01-11 11:15 天轰穿 阅读(256) 评论(0) 编辑

2013年1月10日

摘要: 老田:你说的第二个问题:有什么办法让类无法被继承?这个简单得吓死人,因为只需要将一个专用于密封的sealed关键字加在定义类的class关键字前面即可。当对一个类应用 sealed修饰符时,此修饰符会阻止其他类从该类继承。在下面的示例中,类 B 从类 A 继承,但是任何类都不能从类 B 继承。 class A { } sealed class B : A { }还可以在重写基类中的虚方法或虚属性的方法或属性上使用 sealed修饰符。这将使您能够允许类从您的类继承,并防止它们重写特定的虚方法或虚属性。在下面的示例中,C 从 B 继承,但 C 无法重写在 A 中声明并在 B 中密封的虚函数 F。阅读全文

posted @ 2013-01-10 13:54 天轰穿 阅读(127) 评论(0) 编辑

2013年1月9日

摘要: 在上一个实例中,客车和卡车这两个类都用到了一个关键字“base”,用来调用基类的构造函数。 但是事实上base并不是专门用来调用基类构造函数的,base关键字的作用就是在派生类中去访问基类中所有非私有的类成员。 小天:切,骗我的吧,我做上面练习的时候,发现什么都不写也可以访问基类的成员。 老田:如果基类成员被派生类复写或者覆盖了呢?看下MSDN的解释吧:· 调用基类上已被其他方法重写(重写就是在子类中重新创建一个和基类方法的返回类型、方法名、参数完全一样的方法,下面接着讨论)的方法。· 指定创建派生类实例时应调用的基类构造函数。还要注意的是:l 基类访问只能在构造函数、实例阅读全文

posted @ 2013-01-09 13:21 天轰穿 阅读(144) 评论(0) 编辑

2013年1月8日

摘要: 不跟你扯这没用的,我们来看个最简单的实例。透视图如图4-25 图4-25从继承的透视图中可以看到,Child类继承了Parent类,在声明了Child 对象的后,对其实例化的时候,我们将可以看到,我们可以对父类的属性X进行赋值,即如果Class Child是继承Class Parent而来,那么Child的对象中包含一个Parent的对象的属性和方法。例:采用继承的方法来计算长方形面积,设计如下图4-26: 图4-26类Parent和类Child的代码如下://---------------------类Parent------------------------public class Pa阅读全文

posted @ 2013-01-08 13:19 天轰穿 阅读(247) 评论(0) 编辑

2013年1月7日

摘要: 小天:你总在说继承,继承到底是什么?老田:现实世界中的许多实体之间不是相互孤立的,他们往往具有相同的特性,也存在内在的差别。人们可以采用层次结构来描述这些实体之间的相似之处和不同之处。 图4-24 类的层次结构示意图上图反映了动物这一个大分类的派生关系。最高层的实体往往是具有最一般最普遍的特征,越下层的事物越具体,并且下层包含了上层的基特征,他们之间的关系是基类和派生类之间的关系。小天:我总结下吧,这个无非就是一般到特殊的关系。老田:是的,就如上图所表达的,动物是一个类,但是这个中只包含所有动物都具备的基本特征,比如马和鱼都是动物,都有相同的特征和操作。但是又各有特点。于是就把它们都具备的特征阅读全文

posted @ 2013-01-07 13:35 天轰穿 阅读(181) 评论(0) 编辑

2013年1月6日

摘要: 小天:别总是光说不练好不好,来点实际的吧。我都习惯了从例题中学习,而不是看概念学习了。老田:哎,下面就来开发一个结构Record,来演示运算符重载,第一个重载是复写了ToString方法。using System;namespace operator_overload{ public struct Record //注意,这里是结构 { private int x, y; public Record(int num1, int num2) { x = num1; y = num2; } ///<summary> ///复写ToString方法,在界面上例题一 ///</sum阅读全文

posted @ 2013-01-06 13:15 天轰穿 阅读(156) 评论(0) 编辑

2013年1月5日

摘要: 小天:来个实例说明下,到底是怎么重载的吧。老田:在讲解实例之前,我们应该先理解运算符是如何重载的,考虑一下在编译器遇到运算符时会发生什么样的情况。我们用相加运算符+作为例子来讲解。假定编译器遇到下面的代码: int myInteger = 3; uint myUnsignedInt = 2; double myDouble = 4.0; long myLong = myInteger + myUnsignedInt; double myOtherDouble = myDouble + myInteger; //会发生什么情况: long myLong = myInteger + myUnsig阅读全文

posted @ 2013-01-05 13:24 天轰穿 阅读(165) 评论(0) 编辑

2013年1月4日

摘要: 接下来本节将介绍另外一个重要的重载:运算符重载。学习到现在,像+和*这样的运算符只能用于预定义的数据类型,原因很简单:编译器认为所有常见的运算符都是用于这些数据类型的,例如,它知道如何把两个long加起来,或者如何从一个double中减去另一个double,并生成合适的中间语言代码。但在定义自己的类或结构时,必须告诉编译器:什么方法可以调用,每个实例存储了什么字段等所有的信息。同样,如果要在自己的类上使用运算符,就必须告诉编译器相关的运算符在这个类中的含义。此时就要定义运算符重载。 小天:能够用通俗点的语言描述下运算符的概念不?还有只有算术运算符可以重载吗?老田:通俗的说,运算符重载就是对已有阅读全文

posted @ 2013-01-04 13:22 天轰穿 阅读(250) 评论(0) 编辑

2012年12月29日

摘要: 小天:有不有什么办法,实现一次就调用多个构造函数的方法? 老田:有的,这就需要构造函数之间的互访了,换句话说,比如上例,我调用无参数的构造函数来实例化一个对象。而这个无参数的再去调用其他的构造函数,其他的再调用。就这样一环扣一环的下去。如下例 public class Product1 { public int PID; public string PName; public decimal Balance; public Product1() { this.PID = 1; this.PName = ""; this.Balance = 0.0M; } public Pr阅读全文

posted @ 2012-12-29 14:06 天轰穿 阅读(287) 评论(0) 编辑

2012年12月28日

摘要: 构造函数是在实例化对象时自动调用的函数。构造函数的名字不能随便起,它们必须与所属的类同名。除了名字外,构造函数的另一个特别之处是没有返回值类型,这与返回值类型为void的函数不同。构造函数用于初始化字段的值。在你可以访问一个类的方法、属性或任何其它东西之前,第一条执行的语句是包含有相应类的构造函数。甚至你自己不写一个构造函数,也会有一个缺省构造函数提供给你。如下。 //如果类没有显示的写构造函数,那么在实例化的时候//实际上系统会给这个类分配如下这样一个由CLR提供的构造函数 class Product { public Product(): base(){ } // 由CLR提供 } 小天:阅读全文

posted @ 2012-12-28 13:47 天轰穿 阅读(366) 评论(0) 编辑

2012年12月27日

摘要: 老田:这就需要用属性了。而属性的使用和字段有很大的相似之处。如下例:创建Windows桌面应用程序;添加类Product,代码如下:using System;using System.Text;namespace _4_5_ProductManagr{ public class Product { ///<summary> ///商品名 这是VS能够认识的字段的注释方式 ///</summary> private string _name; // 价格 这种注释方式VS无法认识,也就无法提供智能提示 private decimal _price; // 颜色 priva阅读全文

posted @ 2012-12-27 15:15 天轰穿 阅读(149) 评论(0) 编辑

共14页: 上一页 1 2 3 4 5 6 7 8 9 下一页 末页