文档库 最新最全的文档下载
当前位置:文档库 › C_实验报告[1]

C_实验报告[1]

实验项目名称:实验学时:

同组学生姓名:实验地点:

实验日期:实验成绩:

批改教师:批改时间:

一、实验目的和要求

实验目的:

1、理解面向对象的概念,掌握C#的定义类和创建对象的方法。

2、区分类的不同数据成员,包括常量、字段、和属性的定义方法,并学会控制其可访问性。

3、掌握类的方法成员的声明与调用,理解各种参数在方法中的意义及使用。

4、理解构造函数和析构函数的作用机制。

实验要求:

1、熟悉Visual https://www.wendangku.net/doc/8210323360.html,2010的基本操作方法。

2、认真阅读本章相关内容,尤其是案例。

3、实验前进行程序设计,完成源程序的编写任务。

4、反复操作,直到不需要参考教材、能熟练操作为止。

二、实验设备及环境

设备:奔腾4及奔腾4以上计算机

环境:Visual Studio .NET 2010

三、实验任务

1、设计一个简单的Windows应用程序,在文本框中输入两个点的坐标值,单击“确定”按钮时显示两点之间的距离。

要求定义一个Point类,包括:

(1)两个私有字段表示两个坐标值。

(2)一个构造函数通过传入的参数对坐标值初始化。

(3)两个只读属性对坐标值的读取。

(4)一个方法包含一个Point类对象作为形参该对象和自己的距离。

2、自定义一个时间类。该类包含小时、分、秒、字段与属性,具有将秒增加1秒的方法。

要求定义一个Time类,包括:

(1)三个私有字段表示时、分、秒。

(2)两个构造函数,一个通过传入的参数对时间初始化,另一个获取系统当前的时间。

(3)三个只读属性实现对时、分、秒的读取。

(4)一个方法用于对秒增加1秒(注意60进位的问题)。

3、设计一个Windows应用程序,在该程序中定义一个类和班级类,以处理每个学生的学号、姓名,语文、数学和英语三门课程的期末考试成绩,要求:

(1)能查询每个学生的总成绩。

(2)能显示全班前三名的名单。

(3)能显示单科成绩最高分和不及格的学生名单。

(4)能统计全班学生的平均成绩。

(5)能显示各科成绩在不同分数段的学生人数百分比。

设计提示:

(1)定义一个Student学生类,包含字段(学号、姓名、语文成绩、数学成绩、英语成绩)和属性(总成绩)等。

(2)定义一个StudentList班级类,包含一个Student类型的数组(用来保存全班学生的信息)以及若干个实现上述要求的方法等。

(3)设计用户操作界面,首先让用户能输入一个学生的信息,当单击“添加”按键时把这些信息添加到班级对象的学生数组中。当单击“完成”按钮时调用班级类的方法来显示所要求统计的统计结果。当用户在查询框中输入学生的名字后,并单击“查询”按钮时显示该学生的总成绩。

四、实验结果与分析

1、

private void button1_Click(object sender, EventArgs e)

{ int x1, y1, x2, y2;

x1 = Convert.ToInt16 (textBox1.Text);

y1=Convert .ToInt16 (textBox2.Text );

x2 = Convert.ToInt16(textBox3.Text );

y2 = Convert.ToInt16(textBox4.Text);

Point p1 = new Point(x1, y1);

Point p2 = new Point(x2, y2);

label7.Text = p1.Distance(p2).ToString();}

{ public int X, Y;

public Point(int I, int J) { X = I; Y = J; }

public double Distance(Point p)

{ return System.Math.Sqrt((this.X - p.X) * (this.X - p.X) + (this.Y - p.Y) *(this.Y - p.Y));

} }

实验结果:

2、

private void button1_Click(object sender, EventArgs e)

{ Time t=new Time();

texthour.Text = Convert.ToString(t.Gethour());

textminute.Text = Convert.ToString(t.Getminute());

textsecond.Text = Convert.ToString(t.Getsecond());}

class Time

{ int hour, minute, second;

public int Gethour(){return hour; }

public int Getminute(){ return minute; }

public int Getsecond(){return second; }

public Time()

{ hour = System.DateTime.Now.Hour;

minute = System.DateTime.Now.Minute;

second = System.DateTime.Now.Second; }

public Time(int h, int m, int s)

{ hour = h; minute = m; second = s; }

public void AddSecond()

if (second >= 60) { second = second % 60; minute++;}

if (minute >= 60) { minute = minute % 60; hour++; }

} }

实验结果:

3、

namespace _43

{ class Program

{ private static StudentList stulist;

static void Main(string[] args);

{ stulist=new StudentList();

Student stu1=new Student(“1105303001”,”zhangsan”,90,85,89);

Student stu2=new Student(“1105303002”,”lisi”,75,85,94);

Student stu3=new Student(“1105303003”,”wanger”,90,79,80);

Student stu4=new Student(“1105303004”,”qianyi”.30,50,55);

Student stu5=new Student(“1105303005”,”sunwu”,45,67,38);

stulist.Add(stu1); stulist.Add(stu2); stulist.Add(stu3); stulist.Add(stu4); stulist.Add(stu5); string str; str=Console.ReadLine();

if(str.Equal(“语文”)||str.Equals(“数学”)||str.Equals(“英语”)) stulist.searchSubject(str); else stulist.searchName(str);

Console.ReadLine();}

Class Student

{ private string number;

private string name;

private float chinese;

private float math;

private float english;

public Student(string number,string name,float chinese,float math,float english) { this.number=number; https://www.wendangku.net/doc/8210323360.html,=name; this.chinese=chinese;

this.math=math; this.english=english; }

public string Number

{ get { return this.number;} }

public string Name

{ get { return https://www.wendangku.net/doc/8210323360.html,;} }

public float Chinese

{ set{ this.chiese=value;} get{ return this.chinese;} }

public float Math

{ set { this.math=value;} get{ return this.math;} }

public float English

{ set{ this.english=value;} get{ return this.english;} }

public float Total

{ get{ return chinese+math+english;} }}

Class StudentList

{ private Listlist=new List();

private float chieseAver;

private float mathAver;

private float englishAver;

private float totalAver;

public void Add(Student s)

{ this.list.Add(s);}

public float ChineseAver

{ get

{ float s=0;

foreach(Student stu in list)

{ s+=stu.Chinese;}

chineseAver=s/list.Count;

return chineseAver; } }

public float MathAver

{ get

{ float s=0;

foreach(Student stu in list)

{ s+=stu.Math;}

mathAver=s/list.Count;

return mathAver; } }

public float EnglishAver

{ get

{ float s=0;

foreach(Student stu in list)

{ s+=stu.English;}

englishAver=s/list.Count;

return englishAver; } }

public float TotalAver

{ get

{ float s=0;

foreach(Student stu in list)

{ s+=stu.Total;}

totalAver=s/list.Count;

return totalAver; } }

public void searchName(string name)

{ foreach(Student stu in list)

{ if(https://www.wendangku.net/doc/8210323360.html,.Equals(name))

Console.WriteLine(“学号:{0},姓名:{1},语文:{2},数学:{3},英语:{4}”,stu.Number,https://www.wendangku.net/doc/8210323360.html,,stu.Chinese,stu.Math,stu.English); } }

public voic searchSubject(string subject)

{ switch(subject)

{ case”语文”;

float max=0;

foreach(Student stu in list)

{ if(max

max=stu.Chinese;

if(stu.Chinese<60)

Console.WriteLine(string.Format(“学号:”+stu.Number+”姓名:{0},语文:{1}”,https://www.wendangku.net/doc/8210323360.html,,stu.Chinese));

}

Console.WriteLine(“最高分{0}”,max);

break;

case”数学”;

float max1=0;

foreach(Student stu in list)

{ if(max1

max1=stu.Math;

if(stu.Math<60)

Console.WriteLine(string.Format(“学号:”+stu.Number+”姓名:{0},语文:{1}”,https://www.wendangku.net/doc/8210323360.html,,stu.Math));

}

Console.WriteLine(“最高分{0}”,max1);

break;

case”英语”;

float max2=0;

foreach(Student stu in list)

{ if(max2

max2=stu.English;

if(stu.English<60)

Console.WriteLine(string.Format(“学号:”+stu.Number+”姓名:{0},语文:{1}”,https://www.wendangku.net/doc/8210323360.html,,stu.English);

}

Console.WriteLine(“最高分{0}”,max2);

break;

} }} }

实验结果:

五、实验体会

本次实验,重在理解面向对象的概念,掌握C#的定义类和创建对象的方法刚开始时会出现一些问题,经过与同学讨论,最后终于能调试出来,感觉自己有所进步,希望以后能自己独立完成。

实验项目名称:实验学时:

同组学生姓名:实验地点:

实验日期:实验成绩:

批改教师:批改时间:

一、实验目的和要求

实验目的:

1、区别静态类与非静态类,掌握静态字段、静态方法和静态构造函数的定义方法。

2、理解类的继承性与多态性,掌握其应用方法。

3、理解抽象类、接口的概念,掌握抽象类与接口的定义及使用方法。

4、理解分部类和命名空间的概念,掌握分部类和命名空间的使用方法。

实验要求:

1、熟悉Visual https://www.wendangku.net/doc/8210323360.html, 2010 的基本操作方法。

2、认真阅读本章相关内容,尤其是案例。

3、实验前进行程序设计,完成源程序的编写任务。

4、反复操作,直到不需要参考教材、能熟练操作为止。

二、实验设备及环境

设备:奔腾4及奔腾4以上计算机

环境:Visual Studio .NET 2010

三、实验任务

1、设计一个Windows应用程序,在该程序中首先构造一个学生基本类,再分别构造小学生、中学生、大学生等派生类,当输入相关数据,单击不同的按钮(“小学生”、“中学生”、“大学生”)时将分别创建不同的学生对象,并输出当前的学生总人数,该学生的姓名、学生类型和平均成绩。

要求如下:

(1)每个学生都有的字段为姓名、年龄。

(2)小学生的字段还有语文、数学,用来表示这两科的成绩。

(3)中学生在此基础上增加英语成绩。

(4)大学生分为必修课和选修课两项成绩。

(5)学生类提供方法来统计自己的总成绩并输出。

(6)通过静态成员自动记录学生总人数。

(7)成员初始化能通过构造函数完成。

2、设计一个Windows应用程序,在该程序中定义平面图形抽象类和其派生类圆、矩形和三角形。该程序实现的功能包括:输入相应图形的参数,如矩形的长和宽,单击相应的按钮,根据输入参数创建图形类并输出该对象的面积。

3、声明一个接口IPlayer,包含5个接口方法:播放、停止、暂停、上一首和下一首。设计一个Windows应用程序,在该程序中定义一个MP3播放器类和一个AVI播放器类,以实现该接口,最后创建相应类的实例测试程序,如果单击AVI按钮后,再单击“播放”按钮则应显示“正在播放AVI视频!”。

四、实验结果与分析

1、

public abstract class Student

{ protected string name;

protected int age;

public static int number;

public Student(string name, int age)

{ https://www.wendangku.net/doc/8210323360.html, = name; this.age = age; number++; }

public string Name { get { return name; } }

public abstract double Average();}

public class Pupil : Student

{ protected double chinese;

protected double math;

public Pupil(string name, int age, double chinese, double math) : base(name, age)

{ this.chinese = chinese; this.math = math; }

public override double Average()

{ return (chinese + math) / 2; } }

public class Middle : Pupil

{ protected double english;

public Middle(string name, int age, double chinese, double math, double english) :

base(name, age, chinese, math)

{ this.chinese = chinese; this.math = math; this.english = english; }

public override double Average()

{ return (chinese +math +english )/3; }}

public class College : Student

{ protected double xuanxiu; protected double bixiu;

public College(string name, int age, double xuanxiu, double bixiu) : base(name, age)

{ this.xuanxiu = xuanxiu; this.bixiu = bixiu; }

public override double Average()

{ return (xuanxiu+bixiu)/2; } }

private void button1_Click(object sender, EventArgs e)

{

string n=Convert.ToString(textBox1.Text);

int a=Convert.ToInt16(textBox2.Text);

double ch=Convert.ToDouble(textBox3.Text);

double ma=Convert.ToDouble(textBox4.Text);

Pupil P1 = new Pupil(n, a, ch, ma);

lable6 .Text += "总人数:" + Student.number + ",姓名:" + https://www.wendangku.net/doc/8210323360.html, + ",小学生,平均成绩为:" + P1.Average();

}

private void button2_Click(object sender, EventArgs e)

{

string n = Convert.ToString(textBox1.Text);

int a = Convert.ToInt16(textBox2.Text);

double ch = Convert.ToDouble(textBox3.Text);

double ma = Convert.ToDouble(textBox4.Text);

double en = Convert.ToDouble(textBox5.Text);

Middle M1 = new Middle (n, a, ch, ma,en );

lable6.Text += "总人数:" + Student.number + ",姓名" + https://www.wendangku.net/doc/8210323360.html, + ",中学生,平均成绩为:" + M1.Average() ;

}

private void button3_Click(object sender, EventArgs e)

{ string n = Convert.ToString(textBox1.Text);

int a = Convert.ToInt16(textBox2.Text);

double bx = Convert.ToDouble(textBox3.Text);

double xx = Convert.ToDouble(textBox4.Text);

College C1 = new College (n, a,bx ,xx );

lable6.Text += "总人数:" + Student.number + ",姓名" + https://www.wendangku.net/doc/8210323360.html, + ",大学生,平均成绩为:" + C1.Average();}

实验结果:

2、

public abstract class Figure

{ public abstract double Area();}

public class Circle : Figure { double radius;

public Circle(double r) { radius = r; }

public override double Area(){return radius * radius * 3.14; } }

public class JX : Figure{ double ch, k;

public JX(double a, double b) { ch = a; k = b; }

public override double Area() { return ch*k ; } }

public class SJX:Figure { double d,g;

public SJX(double a, double b) { d = a; g = b; }

public override double Area(){return d *g/2 ; }}

private void button1_Click(object sender, EventArgs e)

{ Circle C1=new Circle (Convert.ToDouble (textBox1 .Text));

label6.Text += "圆的面积是" + C1.Area();}

private void button2_Click(object sender, EventArgs e)

{ JX A1 = new JX(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text));

label6.Text += "\n矩形的面积是" + A1.Area();}

private void button3_Click(object sender, EventArgs e)

{ SJX B1 = new SJX(Convert.ToDouble(textBox1.Text), Convert.ToDouble(textBox2.Text));

label6.Text += "\n三角形的面积是" + B1.Area();}

实验结果:

IPlayer iplayer;

MP3 mp3;

A VI avi;

private void button3_Click(object sender, EventArgs e)

{ label1.Text = iplayer.Pre();}

private void button4_Click(object sender, EventArgs e)

{ label1.Text = iplayer.Stop ();}

private void button5_Click(object sender, EventArgs e)

{ label1.Text = iplayer.Play ();}

private void button6_Click(object sender, EventArgs e) { label1.Text = iplayer.Pause ();} private void button7_Click(object sender, EventArgs e) { label1.Text = iplayer.Next ();} private void button2_Click(object sender, EventArgs e)

{ avi = new A VI();iplayer = (IPlayer)avi; }

private void button1_Click(object sender, EventArgs e)

{ mp3 = new MP3();iplayer = (IPlayer)mp3; } }

interface IPlayer

{ string Play();string Stop();string Pause();string Pre();string Next();}

public class MP3 : IPlayer

{ public string Play(){return "正在播放MP3歌曲!";}

public string Stop(){return "停止播放MP3歌曲!";}

public string Pause(){return "暂停播放MP3歌曲!";}

public string Pre(){return "播放上一首MP3歌曲!"; }

public string Next(){return "播放下一首MP3歌曲!"; } }

public class A VI : IPlayer

{ public string Play(){return "正在播放A VI视频!";}

public string Stop(){return "停止播放AVI视频!"; }

public string Pause(){return "暂停播放A VI视频!"; }

public string Pre(){ return "播放上一部A VI视频!";}

public string Next(){return "播放下一部A VI视频!"; } }

实验结果:

五、实验体会

本次实验程序,重在区分静态类与非静态类,理解类的继承性与多态性,抽象类与接口的使用方法。并没有太大困难,与之前所学习的相得益彰,加深了我们对类的了解。也能更加熟练地用C#进行更多的实验。

实验项目名称:实验学时:

同组学生姓名:实验地点:

实验日期:实验成绩:

批改教师:批改时间:

一、实验目的和要求

实验目的:

1、初步掌握常用集合的创建和操作方法。

2、初步掌握索引器的定义与使用。

3、初步掌握泛型接口、泛型类、泛型属性和泛型方法的使用。

实验要求:

1、熟悉Visual https://www.wendangku.net/doc/8210323360.html, 2010 的基本操作方法。

2、认真阅读本章相关内容,尤其是案例。

3、实验前进行程序设计,完成源程序的编写任务。

4、反复操作,直到不需要参考教材、能熟练操作为止。

二、实验设备及环境

设备:奔腾4及奔腾4以上计算机

环境:Visual Studio .NET 2010

三、实验任务

1、设计一个Windows应用程序,定义一个Teacher类,包含姓名和职称两个字段和一个输出教师信息的方法,并用ArrayList实现与实例6-2相似的功能。

2、设计一个Windows应用程序,定义一个Student类,包含学号和姓名两个字段,并定义一个班级类ClassList,该类包括一个Student集合,使用索引器访问该集合,实现与实例6-3类似的功能。

3、设计一个Windows应用程序,要求如下:

(1)构造一个学生基本类。

(2)分别构造小学生、中学生、大学生等派生类,要求具有不同的特征和行为。

(3)定义一个泛型班级类,约束参数类型为学生类,该泛型的班级类包括一个泛型集合,

用于存放各种学生对象,并包含一个方法用于输出每个学生的相关信息。

(4)仿照实例6-4,定义泛型的班级类对象,完成对学生的添加和信息的输出。

四、实验结果与分析

1、

namespace _61

{public partial class Form1 : Form

{ArrayList ALTeachers = new ArrayList();

private void Foreach(){foreach (object t in ALTeachers)

{Teacher tForeach = (Teacher)t; lblShow.Text += "\n" + tForeach.showmsg(); } }

public Form1(){InitializeComponent();

private void btnAdd_Click(object sender, EventArgs e)

{string n= Convert.ToString(textBox1.Text); string c = Convert.ToString(textBox2.Text); Teachert1 = new Teacher(n, c);ALTeachers.Add(t1); lblShow.Text = "";Foreach(); }

private void btnDele_Click(object sender, EventArgs e)

{int key = Convert.ToInt32(textBox3.Text); ALTeachers.RemoveAt(key);

lblShow.Text = "";Foreach();}

private void lblShow_Click(object sender, EventArgs e){ } }}

{class Teacher

{string name;string zhicheng;

public Teacher(string name, string zhicheng) {https://www.wendangku.net/doc/8210323360.html, = name;this.zhicheng = zhicheng;} public string showmsg() {return string.Format("姓名:{0},职称:{1}", name, zhicheng); } }} public abstract class StudentBase{int age;string name; public virtual void walk();{}

public class Pupil:StudentBase{public override void walk() {} }

public interface IClass{} public class ClassA:IClass{public list NumberList;}

2、

namespace _62

{public partial class Form1 : Form

class Student

{ string name;string number;

public Student(string name, string number) {https://www.wendangku.net/doc/8210323360.html, = name;this.number = number;} public string showmsg(){return string.Format("姓名:{0},学号:{1}", name, number);} } class ClassList{ Student[ ] students;

public ClassList(int n) { students= new Student[n];} }

public Student this[int index]

{ get{ if(index<0 || index>=students.Length) { return null; } return students[index]; } set { if(index<0 || index>=students.Length) {return;} students[index]=value; }}}

3、

namespace _63

{ public partial class Form1:Form

{ Banji< Xuesheng >myBanji = new Banji< Xuesheng >( );

Private void btnXiaoxuesheng_Click( object sender,EventArgs e)

{ myBanji.Xueshengs.Add(new Xiaoxuesheng(txtName.Text));

lblShow.Text+= string.Format(“\n添加Xiaoxuesheng{0}成功”,txtName.Text); } Private void btnZhongxuesheng_Click( object sender,EventArgs e)

{ myBanji.Xueshengs.Add(new Zhongxuesheng(txtName.Text));

lblShow.Text+= string.Format(“\n添加Zhongxuesheng{0}成功”,txtName.Text); } Private void btnDaxuesheng_Click( object sender,EventArgs e)

{ myBanji.Xueshengs.Add(new Daxuesheng(txtName.Text));

lblShow.Text+= string.Format(“\n添加Daxuesheng{0}成功”,txtName.Text); } public abstract class Xuesheng

{ protected string name;

public Xuesheng(string name){ https://www.wendangku.net/doc/8210323360.html, = name;}

public abstract string Act( ); }

public class(Xiaoxuesheng: Xuesheng

{ public Xiaoxuesheng(string name): base(name) { }

public override string Act( )

{return string.Format(“{0}:我是Xiaoxuesheng,我要玩!”,name);} }

public class(Zhongxuesheng: Xuesheng

{ public Zhongxuesheng(string name): base(name) { }

public override string Act( )

{return string.Format(“{0}:我是Zhongxuesheng,我要看书!”,name);} }

public class(Dagxuesheng: Xuesheng

{ public Daxuesheng(string name): base(name) { }

public override string Act( )

{return string.Format(“{0}:我是Daxuesheng,我要兼职!”,name);} }

public class Banji where T : Xuesheng

{private List xueshengs = new List;

public List Xueshengs

{get { return xueshengs;} }}}}

五、实验体会

在本次试验中,我初步掌握了常用集合的创建和操作方法以及索引器的定义和使用,对泛型类也有了一定的了解。基于前几次的实验,我在本次实验更加小心仔细,加上老师在实验前对我们的点拨,实验也没有很大困难,其中需要注意的是,索引的数据类型必须与索引器的索引类型相同。

实验项目名称:实验学时:

同组学生姓名:实验地点:

实验日期:实验成绩:

批改教师:批改时间:

一、实验目的和要求

实验目的:

1、理解程序错误和异常的概念。

2、掌握Visual https://www.wendangku.net/doc/8210323360.html, 2010的调试器的使用方法。

3、掌握C#的try-catch、finally和throw语句的使用方法。

实验要求:

1、熟悉Visual https://www.wendangku.net/doc/8210323360.html, 2010 的基本操作方法。

2、认真阅读本章相关内容,尤其是案例。

3、实验前进行程序设计,完成源程序的编写任务。

4、反复操作,直到不需要参考教材、能熟练操作为止。

二、实验设备及环境

设备:奔腾4及奔腾4以上计算机

环境:Visual Studio .NET 2010

三、实验任务

1、设计一个Windows应用程序,在一个文本框中输入n个数字,中间用逗号作间隔,然后编程对数字排序并输出。

2、按F11键启用逐语句方式跟踪每一条语句的执行情况,在调试过程中将数组a添加到监视窗口。注意,观察各数组元素的变化过程。

3、设置“for(int i=0;i

4、上述代码在用户不按规定输入数据时会发生异常。修改源代码,使用try-catch语句添加异常处理功能。

5、然后输入以下数据:“5,3,7,8,1,4;6,9,2”,单击“排序”按钮,注意观察异常

信息,分析错误的原因。

四、实验结果与分析

namespace _71

{public partial class Form1 : Form

{public Form1()

{InitializeComponent();}

private void btnSort_Click(object sender, EventArgs e)

{string[] sources = txtSource.Text.Split(',');

int[] a = new int[sources.Length];

for (int i = 0; i < sources.Length; i++)

{a[i] = Convert.ToInt16(sources[i]);}

for (int i = 0; i < a.Length; i++)

{ int k = i;

for(int j=i+1;j

{if (a[k] > a[j]) k = j;}

int t = a[i];a[i] = a[k];a[k] = t; }

foreach (int t in a)

{ lblShow.Text += string.Format("{0,-4:D}", t); } }

private void Form1_Load(object sender, EventArgs e)

{ int[ ]a={1,2,3,4,5,6,7,8,9}

for (int i=0;i

private void Form1_Click(object sender, EventArgs e)

{ int k=-1;

for(int i=1;i

{if(a[i]==txtSearch.Text){ k=i;lblShow.Text=”一切正常”;}

else if (String.IsNullOrEmpty(a[i]))

{ lblShow.Text=”检索失败,终止循环!”; break;}}

if(k!=-1) lblShow.Text=”检索成功,索引号为:”+ k;}

private void btnOk_Click(object sender, EventArgs e)

{ try

{for (int i = 0; i < sources.Length; i++){ a[i] = Convert.ToInt16(sources[i]); }

}

catch (Exception ex){ lbshow.Text = ex.Message; }

}}}

五、实验体会

这次实验的重点在了解程序错误和异常,其中程序错误有三种类型:语法错误、逻辑错误、运行时错误。同时我也掌握了Visual https://www.wendangku.net/doc/8210323360.html, 2010的调试器的使用方法和C#的try-catch、finally和throw语句的使用方法。

相关文档