2012年6月27日

C#索引器-示例代码

摘要: using System;public class Photo //这个类是一个相片类{private string _title; //相片标题//先定义默认构造函数public Photo(){ //初始化相片标题的构造方法 _title = "我是张三";}public Photo(string title){ //初始化相片标题的构造方法 _title = title;}public string Title{ //属性 get { return _title; }}}public class Album{//相册类Photo[]photos; //用于存放照片的数 阅读全文

posted @ 2012-06-27 09:49 流星落 阅读(247) 评论(0) 推荐(0) 编辑

C#索引器-索引器和属性的区别

摘要: 属性和索引器的差别:一个对象只有一个属性值,所以要存放多个值必须实例化多个对象(通常情况下,实例化一个数组的对象,接着实例化的对象赋给这个数组)。一个对象对应的索引是一个数组,并且可以存放多个数值或字符串,所以只需要实例化一个对象就可以存放以及访问多个存储内容。using System;using System.Collections.Generic;namespace aaa{public class arrClass{ //通过构造方法以及属性进行赋值 private string name;//定义一个字段 public string Name{ //定义一个属性,通过属性来修改name 阅读全文

posted @ 2012-06-27 09:48 流星落 阅读(278) 评论(0) 推荐(0) 编辑

C#索引器-索引器与数组属性的比较

摘要: 索引器(Indexer)索引器允许类或结构的实例按照与数据相同的方式进行索引。索引器类似于属性,不同之处在于它们的访问器采用参数。所以索引器也被称为有参属性。示例一:using System ;class ArrClass//没有索引器的类{private readonly string name;public ArrClass(string name){this.name = name;}public string Name{get{return name;}}}class IndexClass//带索引器的类{private string [] name = new string [10] 阅读全文

posted @ 2012-06-27 09:47 流星落 阅读(1149) 评论(0) 推荐(0) 编辑

C#索引器-索引器概述

摘要: 数组中的元素可以通过索引进行检索,如果一个类中有很多对象,怎样简单、快速地查找到需要的对象以及对象的特性呢?索引器就是为了实现这样的功能而设计的。索引器允许类或结构的实例按照与数组相同的方式进行索引。可以简单地把索引器理解为书中的目录,字典中提供的检索的索引。索引器(Indexer)是C#引入的一个新型的类成员,它使得对象可以像数组那样被方便,直观的引用。索引器非常类似于我们前面讲到的属性,但索引器可以有参数列表,且只能作用在实例对象上,而不能在类上直接作用。索引器可以重载,以数组的形式访问类中的成员,实际上不单单是访问,可以在访问的代码中实现特定的处理。 阅读全文

posted @ 2012-06-27 09:46 流星落 阅读(198) 评论(0) 推荐(0) 编辑

C#索引器-索引器的定义

摘要: 索引器定义类似于属性,但其功能与属性并不相同。索引器提供一种特殊的方法编写get和set访问器。属性可以像访问字段一样访问对象的数据,索引器可以使用户像访问数组一样访问类成员。定义索引器的语法如下:<访问修饰符> 类型名称 this [类型名称 参数名]{ get{//获得属性的代码} set{ //设置属性的代码}}索引器没有像属性和方法那样的名字,关键字this清楚地表达了索引器引用对象的特征。和属性一样,value关键字在set后的语句块里有参数传递意义。和方法一样,索引器有5种存取保护级别new、public、protected、internal、private,和4种继承 阅读全文

posted @ 2012-06-27 09:46 流星落 阅读(1370) 评论(0) 推荐(0) 编辑

C#接口-显式接口和隐式接口的实现

摘要: C#中对于接口的实现方式有隐式接口和显式接口两种:隐式地实现接口成员创建一个接口,IChinese,包含一个成员 Speak;我们创建一个类Speaker,实现接口Chinese//隐藏式实现例子public interface IChinese{ string Speak();}public class Speaker : IChinese{ public string Speak() { return "中文"; }}这个就是隐式实现接口。隐式实现调用方法如下:IChinese s = new Speaker();s.Speak();Speaker s = new Sp 阅读全文

posted @ 2012-06-27 09:45 流星落 阅读(305) 评论(0) 推荐(0) 编辑

C#接口、类和抽象类

摘要: 一个类可以同时继承类和接口,或者抽象类和接口,抽象类和类不能在一个类的继承列表中同时出现。如果子类同时继承类,抽象类和接口,一定要把类或者抽象类写在前面,接口写在后面,类名和接口名之是用“,”隔开,接口没有先后顺序。每一种继承要根据各自的规则去实现。如果希望学生都具有姓名、性别、年龄和学号等属性,当可以直接在计算机专业的学生类中创建,但是,如果还有别的专业的学生,那么都要重新写一遍,不符合代码重用的原则。现在把公用代码提取出来创建一个父类,在父类中赋予这些属性就可以。由于学号只有学生才有,把学号属性放在学生接口中定义更合理,更有利于扩展。using System;public class Pe 阅读全文

posted @ 2012-06-27 09:44 流星落 阅读(237) 评论(0) 推荐(0) 编辑

C#类、接口、虚方法和抽象方法-抽象类与接口的区别与联系

摘要: C#抽象类和接口之间在对于抽象类定义的支持方面具有很大的相似性,甚至可以相互替换,因此很多开发者在进行抽象类定义时对于抽象类和接口的选择显得比较随意。其实,两者之间还是有很大的区别的。首先,以抽象类的方式定义一个公共的抽象类Animal如下:public abstract class Animal { public abstract void Run(); public abstract void Eat(); } 注意:类中默认的范围是private, 一定要显式将抽象的内容显示声明为public然后使用接口的方式定义接口Animal如下:public interface IAnimal{ 阅读全文

posted @ 2012-06-27 09:43 流星落 阅读(291) 评论(0) 推荐(0) 编辑

C#类、接口、虚方法和抽象方法-抽象类和接口的相同点和区别

摘要: 一、抽象类 (1) 抽象方法只作声明,而不包含实现,可以看成是没有实现体的虚方法 (2) 抽象类不能被实例化 (3) 抽象类可以但不是必须有抽象属性和抽象方法,但是一旦有了抽象方法,就一定要把这个类声明为抽象类 (4) 具体派生类必须覆盖基类的抽象方法 (5) 抽象派生类可以覆盖基类的抽象方法,也可以不覆盖。如果不覆盖,则其具体派生类必须覆盖它们。如:using System;public abstract class A //抽象类A { private int num=0; public int Num //抽象类包含属性 { get { return num; } set ... 阅读全文

posted @ 2012-06-27 09:42 流星落 阅读(314) 评论(0) 推荐(0) 编辑

C#类、接口、虚方法和抽象方法-接口与抽象类的区别实例

摘要: 1.抽象类可以有实现(包括构造函数),而接口不可以有任何实现。namespace ConsoleApplication1 { class Program { interface IMyInterface1 { void IMethod1(); void IMethod2(); } abstract class AMyClass1 { public abstract void AMethod1(); public abstract void AMethod2(); public AMyClass1() { } public void AMethod() { Co... 阅读全文

posted @ 2012-06-27 09:41 流星落 阅读(196) 评论(0) 推荐(0) 编辑

C#类、接口、虚方法和抽象方法-抽象类和接口的区别

摘要: 一、抽象类: 抽象类是特殊的类,只是不能被实例化;除此以外,具有类的其他特性;重要的是抽象类可以包括抽象方法,这是普通类所不能的。抽象方法只能声明于抽象类中,且不包含任何实现,派生类必须覆盖它们。另外,抽象类可以派生自一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果不覆盖,则其派生类必须覆盖它们。二、接口: 接口是引用类型的,类似于类,和抽象类的相似之处有三点: 1、不能实例化; 2、包含未实现的方法声明; 3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员); 另外,接口有如下特性:接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成 阅读全文

posted @ 2012-06-27 09:40 流星落 阅读(495) 评论(0) 推荐(0) 编辑

C#类、接口、虚方法和抽象方法-非抽象类与接口的差别

摘要: 非抽象类和接口的差别很大,它们的差别主要表现在以下几个方面:1、非抽象类可以有成员变量、常量和构造函数,而接口中不能存在常量、域、操作符、构造函数或析构函数,而且不能包含任何静态成员。2、一个非抽象类可以继承多个接口,而只能继承一个类;3、非抽象类中可以定义具体的方法和实现,而接口只定义方法没有具体的实现;4、接口成员一定是公共的,而且不能声明为虚拟或者是静态的,而非抽象类中是没有这些限制。5、非抽象类可以被实例化,而接口不可以。一般来说,非抽象类的内容较接口要丰富得多,非抽象类可以有面向对象所有的绝大部分组成元素。但是接口相对于非抽象类来说更加灵活,两者在使用上冲突不大,在使用的时候视具体情 阅读全文

posted @ 2012-06-27 09:39 流星落 阅读(278) 评论(0) 推荐(0) 编辑

C#类、接口、虚方法和抽象方法-虚拟方法与抽象方法之区别

摘要: 虚方法和抽象方法都可以供派生类重写,它们之间有什么区别呢?1. 虚方法必须有实现部分,并为派生类提供了重写该方法的选项。抽象方法没有提供实现部分,抽象方法是一种强制派生类重写的方法,否则派生类将不能被实例化。//抽象方法publicabstractclass Animal{publicabstractvoid Sleep();publicabstractvoid Eat();}//虚方法publicclass Animal{publicvirtualvoid Sleep(){}publicvirtualvoid Eat(){}}2. 抽象方法只能在抽象类中声明, 抽象方法必须在派生类中重写。虚 阅读全文

posted @ 2012-06-27 09:38 流星落 阅读(614) 评论(0) 推荐(0) 编辑

C#接口-接口的继承

摘要: 类之间可以继承,和类一样,接口也允许继承。C#中接口可以多继承,接口之间可以互相继承和多继承。普通类和抽象类可以继承接口。一个类可以同时继承一个类和多个接口,但是接口不能继承类。假如你是一名在职学习的学生,你就具有双重身份。一个身份是学生,必须完成学习任务,另一身份是职员,必须完成工作任务。进一步说,如果你是计算机类学生,除学基础课外,还必须学习C#程序设计。现在建立一个模型,应该如何建立?我们首先来定义一个学生接口,规定学生必须学习,再建立一个职员接口,规定职员必须完成工作任务。计算机专业的学生,除了完成一般学习任务,还是学习C#。可以再定义一个接口,继承学生接口,规定自己的学习任务。usi 阅读全文

posted @ 2012-06-27 09:37 流星落 阅读(7528) 评论(0) 推荐(0) 编辑

C#接口-深入浅出(这篇写得很好)

摘要: 假设我们公司有两种程序员:VB程序员指的是用VB写程序的程序员,用VBpro这个类表示;C程序员指的是用C写程序的程序员,用Cpro这个类来表示。每个类都有一个WriteCode()方法。现在公司来了一个项目,要求派某个程序员写一个程序。using System;//vb程序员class VBpro{public void WriteCode(){ Console.WriteLine("我用vb写代码");}}//c程序员class Cpro{public void WriteCode(){ Console.WriteLine("我用c写代码");}}/ 阅读全文

posted @ 2012-06-27 09:36 流星落 阅读(775) 评论(0) 推荐(0) 编辑

C#接口-接口作为参数

摘要: 接口作为参数和返回值,都是同样的作用,所有继承了这个接口的类,都可以使用。也就是说,你给这个方法传参数的时候,可以把继承了这个接口的类的实例传给这个方法,同样的道理,你可以把继承了这个接口的类返回。接口做为参数传递,传递的是实现了接口的对象; 接口作为类型返回,返回的是实现了接口的对象。接口的传递与返回就是围绕着上面的两句话展开的。using System;// 一个人类的接口public interface IPerson{void Say();}// 一个男人的类public class Man: IPerson{public void Say(){ Console.WriteLine(& 阅读全文

posted @ 2012-06-27 09:35 流星落 阅读(1685) 评论(0) 推荐(0) 编辑

C#接口-接口作为返回值

摘要: 接口做为参数传递,传递的是实现了接口的对象; 接口作为类型返回,返回的是实现了接口的对象。using System;// IShape接口public interface IShape{// Area属性int Area{ get; set;}// Caculate计算方法void Caculate();}// Circle类继承IShapepublic class Circle: IShape{// area字段int area = 0;// 构造函数public Circle(int m_Area){ area = m_Area;}// Area属性public int Area{ get 阅读全文

posted @ 2012-06-27 09:35 流星落 阅读(1623) 评论(0) 推荐(0) 编辑

C#接口-经典实例

摘要: 接口是把隐式公共方法和属性组合起来,以封装特定功能的一个集合。一旦定义了接口,就可以在类中实现它。这样,类就可以支持接口所指定的所有属性和成员。接口不能单独存在;不能进行实例化(因为没有必要实例化);接口不包括任何实现其成员的代码而只定义了成员本身;成员的实现将在实现接口的类中实现。以上是接口的书本定义,读完基本不知所云。就知道了接口与类不一样,接口与类都需要定义自身的成员,但接口不能实现成员的功能。我觉得可以简单地说:接口是类的更高级抽象(类已经是其所要实现的过程的抽象了),接口定义了类实现的规范。接口好像是事先定义好的备忘录,提醒你,类需要有这些成员,需要完成这些功能。但是,不同的类,他们 阅读全文

posted @ 2012-06-27 09:32 流星落 阅读(1216) 评论(0) 推荐(0) 编辑

C#接口-对接口理解实例代码

摘要: using System;public interface Iren{void eat();void sleep();}public class Xuesheng: Iren{public void eat(){ Console.WriteLine("我是一个学生,我去食堂吃饭");}public void sleep(){ Console.WriteLine("我是一个学生,我回寝室睡觉");}}public class Laoshi: Iren{public void eat(){ Console.WriteLine("我是一个老师,我回家 阅读全文

posted @ 2012-06-27 09:31 流星落 阅读(273) 评论(0) 推荐(0) 编辑

C#接口-对接口的理解

摘要: 我是通过此文章理解了接口,觉得非常实用,借来一用。c#为什么要使用接口?通俗的讲,就是为了降低耦合度。给大家看一个我见过的很搞笑的例子。看看下面的程序:一个学校里边,有两种人:学生、老师。他们都要吃饭和睡觉。1publicinterface I人 2{3void 吃饭();4void 睡觉();5}6publicclass 学生:I人 7{8publicvoid 吃饭() 9{ //去食堂吃饭 } 10publicvoid 睡觉() 11{ //回寝室睡觉 } 12//其他特有方法,比如泡妞、打游戏 13}14publicclass 老师:I人 15{ 16publicvoid 吃饭() 17 阅读全文

posted @ 2012-06-27 09:30 流星落 阅读(412) 评论(0) 推荐(0) 编辑

导航