C#简明教程.docx_第1页
C#简明教程.docx_第2页
C#简明教程.docx_第3页
C#简明教程.docx_第4页
C#简明教程.docx_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

enum 枚举类型struct 结构类型,相当于js中类的属性Console.write();Console.read();装箱(将值类型转为引用类型)和拆箱例:var a=100;object obj=a;Console.write(对象的值为:0,obj);convert类:数值类型转换封装的概念:黑盒子类的继承接口的概念类与对象的关系:类定义了一个模板,通过这个模板可以生产一个或多个对象,实例化类(new)就是创建对象的过程。例:/定义一个类:public class bankcustomerpublic string firstName;public string lastName;public decimal balance;public void deposite(decimal amount) this.balance+=amount;/实例化类(创建一个对象) static void Main(string args)bankcustomer c;c=new bankcustomer();this.firstName=wu;this.lastName=chuande;this.balance= 0.0M;this.deposite(1000.00M);访问修饰符:public:访问不受限制protected:访问仅限于包含类或从包含类派生的类型internal:访问仅限于当前程序集protected internal:访问仅限于从包含类派生的当前程序集或类型private:访问仅限于包含类型(只有本身可以访问)例:Class contactPublic string m_name;Public int m_age;Public string m_telephone = “unknown”;Public struct AddressPublic string m_city;Public string m_street;Public string number;Public string Address m_address=null;Public void telnumber(string targetNumber)Console.writeline();对象引用:对象变量保存的是对对象的一个引用静态(static)类成员:静态类中的成员不属于任何对象,它可以通过类名直接访问。而实例成员必须通过建立对象的引用来访问。静态成员的定义:public static int;静态方法:用静态的方法可以返回静态的类成员,静态的方法可以不用创建实例。构造函数:构造函数是与类同名的特殊方法成员,它是实现初始化类实例所必须操作的成员,在C#中不允许使用未初始化的变量,因此在执行构造函数之前,对象是不可用的。默认实例构造函数:在C#中,如果类不包含任何实例构造函数声明,则自动提供一个默认的无参数的实例构造函数,并使用默认值初始化对象字段(例如,int字段将初始化为0)。参数化的构造函数:构造函数的其他作用:静态构造函数:初始化静态的成员变量从其他构造函数中调用构造函数:可用:this()调用。调用基类的构造函数:可用:base()调用。析构函数:清理:IDispoasble接口对象的方法:声明方法的语法:【访问修饰符】 返回类型 (参数列表)调用方法的语法:实例.方法(参数);方法的重载:方法名相同,但是参数不同(参数数量不同或参数的类型不同,或返回值的类型不同),就可以实现方法的重载。名称空间:增强可读性,减少类名冲突。多级的名称空间。导入名称空间:using system;导入别名的方式:using BT=teamx.businessTier;BT.Customer.c;FxCL:Framework Class Library.类库。如图所示。组件:在.net中,组件被称为程序集(assembly)例:新建类库,并且调用。继承:在C#中用“:”表示继承。如 class Baseint basevar;Base_fun1(). class Derived:Base int derivedvars;Derived_fun1() . void main()Derived dr_obj=new Derived();/调用Base类的成员函数dr_obj.Base_fun1();多重继承:C#中不能多重继承,但允许多重接口实现调用base构造函数:base(a,b);virtual关键字:允许在派生类中重写基类中的方法。例public virtual void recordcall() override关键字:在子类中重写基类的方法,也叫覆盖基类中的方法。例 public override void reocrdcall() 隐藏从基类继承的成员:使用new修饰符显示隐藏从基类继承的成员。若要隐藏继承的成员,请使用相同名称在派生类中声明该成员,并用new修饰符修饰它。 object基类:方法重写:参数不同,方法名相同。可以重写函数抽象类和抽象方法:abstract,抽象类不能实例化。就像没有叫做动物的动物一样。 从抽象类派生的类一定要实现抽象类中的抽象方法。就是动物和猫,狗之间的关系。动物相当于抽象的一个类,动物定义了眼睛,耳朵。从动物派生而出的猫,也一定要有眼睛,耳朵。不然就是异形了。密封类:sealed关键字。为了防止第三方未经授权扩展自己的类。多态性:理解重载和重写。多态的案例:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace duotai class Program static void Main(string args) /创建circle实例 circle tt = new circle(); Console.WriteLine(tt.getSides(); /创建round实例 round rr = new round(); Console.WriteLine(rr.getSides(); /sharp抽象类,创建circle实例,但调用了子类circle的方法 sharp ss = new circle(); Console.WriteLine(ss.getSides(); /定义一个抽象类Sharp public abstract class sharp public abstract int getSides(); /定义一个sharp的子类:circle public class circle:sharp public override int getSides() return 1; /定义一个sharp的第二个子类:round public class round:sharp public override int getSides() return 2 ; 继承和多态的关系:继承是指子类调用了父类的方法,而多态反过来,是指父类调用了子类的方法。接口:interface例:public interface IPictint DeleteImage();void DisplayImag();创建一个实现接口的类,必须实现接口中的方法。可以通过接口实现多继承。多重接口实现:一个类可以实现多个接口。显示接口实现:向上转型:例子:实现一个具体的多态using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace xiangshangzhuanxing class video static void main(string args) /DVD dvd = new DVD(); /dvd.playVideo(); /VCD vcd = new VCD(); /vcd.playVideo(); /实现多态 video tt = new video(); tt.Playvideo(); /video的一个方法 public void Playvideo() /抽象类vw,vw可以实现两个类里的两种不同方法,可以称之为接口,此即多态性 showVideo vw; /vw的第一种方法 vw = new DVD(); Console.WriteLine(play DVD); /vw的第二种方法 vw = new VCD(); Console.WriteLine(play VCD); /定义了一个抽象类 public abstract class showVideo public abstract string playVideo(); /实现了一个抽象类 public class DVD : showVideo public override string playVideo() return it is playing DVD; /实现了第二个抽象类 public class VCD:showVideo public override string playVideo() return it is playing VCD; 运算符重载:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 运算符重载 class Program static void Main(string args) /定义了三个实例 vecture vec1, vec2, vec3; vec1 = new vecture(1.0,2.0,3.0); /定义了以vec1为参数的实例vec2 vec2 = new vecture(vec1); /vec3利用运算符重载 vec3 = vec1 + vec2; Console.WriteLine(vec3.ToString(); /定义一个vecture类 class vecture private double x, y, z; public double X get return x; set x=value; public double Y get return y; set y = value; public double Z get return z; set z = value; /定义无参数的构造函数 public vecture() x = 0; y = 0; z = 0; /定义一个参数的构造函数,以类vecture的实例rhs为参数 public vecture(vecture rhs) x = rhs.x; y = rhs.y; z = rhs.z; /定义一个三个参数的构造函数 public vecture(double x,double y,double z) this.x = x; this.y = y; this.z = z; /重写了ToString方法 public override string ToString() return x的坐标是:+x+y的坐标是+y+z的坐标是+z; /定义了一个+号运算符重载,令两个vecture实例的属性进行相加 public static vecture operator +(vecture lhs, vecture rhs) vecture result = new vecture(lhs); result.x += rhs.x; result.y += rhs.y; result.z += rhs.z; return result; 索引器实例using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace 索引器实例 class Program static void Main(string args) Album myAlbum = new Album(2); photo first = new photo(吴传徳); photo second = new photo(吴传义); myAlbum0 = first; myAlbum1 = second; photo testPhoto=myAlbum0; Console.WriteLine(testPhoto.Title); photo testPhoto2 = myAlbum吴传义; Console.WriteLine(testPhoto2.Title); /定义一个photo类 class photo private string PhotoTitle; /定义两个构造函数,一个为默认值,一个为有一个参数的函数 public photo() PhotoTitle = 楚广明; public photo(string title) PhotoTitle = title; /定义了属性为只读属性的get访问器 public string Title get return PhotoTitle; class Album /定义了相册的成员:相片,将其定义为一个数组 photo photos; /定义构造函数,初始化成员 public Album() photos = new photo3; public Album(int x) photos = new photox; /定义一个根据索引的索引器,索引器是属性的增强版,这里的photo是指返回值为photo类型 public photo thisint index get if (index=photos.Length) Console.WriteLine(索引不存在); return null; return photosindex; set if (index = photos.Length) Console.WriteLine

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论