C#复习要点与解析.doc.pdf

上传人:tbuqq 文档编号:5626017 上传时间:2020-07-06 格式:PDF 页数:19 大小:98.06KB
返回 下载 相关 举报
C#复习要点与解析.doc.pdf_第1页
第1页 / 共19页
C#复习要点与解析.doc.pdf_第2页
第2页 / 共19页
C#复习要点与解析.doc.pdf_第3页
第3页 / 共19页
C#复习要点与解析.doc.pdf_第4页
第4页 / 共19页
C#复习要点与解析.doc.pdf_第5页
第5页 / 共19页
点击查看更多>>
资源描述

《C#复习要点与解析.doc.pdf》由会员分享,可在线阅读,更多相关《C#复习要点与解析.doc.pdf(19页珍藏版)》请在三一文库上搜索。

1、一.概述 1 Microsoft.NETFramework包括了两个组件:CRL (公共语言运行库,简称运行库)和类库。vP6 2、VS2008中常用的应用程序模板: 1)控制台应用程序 2)Windows应用程序 3)ASP.NET Web应用程序 4)ASP.NET Web服务应用程序 5)ASP.NET Web应用程序 6)智能设备应用程序 7)安装和部署程序 3、一、什么是命名空间?命名空间和类库的关系 1)命名空间是对类的一种逻辑上的分组,即将类按照某种关系划分不同的命名空间 2)命名空间乂可以包含其他的命名空间 3)所有类库都在规定的命名空间下 二、using关键字的三种用法: 1

2、)指定引用的命名空间 2)简化命名空间的层次表达形式 3)作为语句定义一个范围 三、 每个应用程序只有一个入口Main方法,C#语言是区分大小写的 4、课后习题 2、什么是命名空间?命名空间和类库的关系 1)命名空间是对类的一种逻辑上的分组,即将类按照某种关系划分不同的命名空间 2)命名空间乂可以包含其他的命名空间 3)所有类库都在规定的命名空间下 3、举例说明using关键字有哪些主要用途。 1)指定引用的命名空间,例如:using System.Windows.Forms; 2)简化命名空间的层次表达形式,例如:using WinForm=System.Windows.Form; 3)作为

3、语句定义一个范围。例如: Font fontl=new Font( uArial, 10.Of) ; using(fontl) 程序执行到时,就会自动释放fontl对象。 二、 数据类型与流程控制 1、数据类型分类:值类型和引用类型 注:数组属于引用类型,结构属于值类型。 2、值类型和引用类型Z间的区别VP18表2?2 特性值类型引用类型 变量中保存的内容实际数据 指向实际数据的引用指 针 内存空间配置 堆栈(stack) 受管制的堆 内存需求较少较多 执行效率 较快较慢 内存释放时间点执行超过定义变量的作用域 时 由垃圾回收机制负责回 收 3、值类型:整形、浮点型、小数型、布尔型、字符型、结

4、构型、枚举型 引用类型:类、委托、接口、数组 4、取消转义字符应使用字符 5、chai?字符的存储为单个字符,字符编码形式采用Unicode编码。 6、显式转换与隐式转换的含义 隐式转换:低精度小范围一-高精度大范围 显式转换:转换时指定数据类型,并且从高精度大范围到低精度小范围数据进行转换时,必须使用显式转 换。 7、什么是装箱和拆箱? 装箱:值类型 ( 隐式转换 ) 一-Object类型 拆箱:Object类型( 显式转换 ) 一-值类型 8、字符串格式化输岀VP41习题4 Console. WriteLine( “ 0? 0:P good“, 12.34F); 运行结果:12.34-l,

5、234.00%good Console.WriteLine( u 0- 0:# good“, 。); 运行结果:0-good Console. WriteLine( “ 0?0:00000 good“ ,456); 运行结果:456?00456good 9、流程控制语句 (条件、分支、循环、跳转)break R continue的含义 (1)if语句实例例2?2设有如下数学表达式,用if语句编程求表达式的值。 ( 当x0 时y=l) using System; namespace IfExample class Program static void Main() Console. Write

6、(z , 请输入x的值: ) ; / 从键盘读入一个字符串,赋给变量x string i = Console. ReadLine (); 将字符串转换为整型数据 int x 二Convert?Tolnt32 (i); int y; 根据x值的大小,为整型变量y赋不同的值 if (x 0) y = 1; else if (x = 0) y = 0; else y = -1; Console. WriteLine( , y的值为:0, y); Con sole ? RcadLincO ; (2)switch语句实例例2?3使用switch语句,完成对成绩等级的评定 using System; na

7、mespace SwitchExample public class Program public static void Main() Console. Write (/z请输入成绩: ) ; /从键盘接收一行字符 str ing str = Con sole ? RceidL inc(); 转换为整型 int i = Int32? Parse (str. Trim (); if (i 100 | i 例2-4使用foi?语句控制循环体using System; namespace ForExample class Program static void Meiin() / 清屏,并设置背景

8、及前景色Console.Clear(); Console. Title 二测试for循环; Console. BackgroundColor 二ConsolcColor. White; Console. ForegroundColor = ConsoleColor. Red; Console. Beep(); 循环定位输出符号 for (int i = 1; i 例2-5使用foreach语句提取SortedList泛型对象的每个元素。using System; namespace ForeachExample class Program public static void Main() 声

9、明一个泛型列表 SortedList list 二new SortedList(); list. Add(2, str2) ;list. Add(l, “strl“); list. Add(3, “str3“); 显示泛型列表中的每个元素; Console? WriteLine(indextstring); foreach (int index in 1ist.Keys) Console .WriteLine(index + t+ list index); Con sole ? ReadL ine(); (5)while语句实例例2?6使用while语句求1到100以内所有能被3整除的自然数u

10、sing System; namespace Whi1 eExample class Program static void Main(string args) int x = 1; while (x+ -1) Console. WriteLine( z, 包含的第一个字母是 0。sletterindex); else Console. WriteLine ( , z 字符串屮不包含字母。); if (digitindex -1) Console. WriteLine( , z 包含的第一个数字是0。,sdigitTndex); else Console. WriteLine (字符串中不包含

11、数字。); Console? ReadLine (); break语句的功能是退出最近的switch while do-whilefor?或foreach语句 continue语句的功能是不再执行continue语句后面循环快内剩余语句,而是将控制直接传递给下一次循环, 此语句可以用在while do-while for或foreach语句块内部。 10 try catch finally 用法 如果try后面有finally块,不论是否出现异常,也不论是否有catch块,finally块总会执行的,即使在try 内使用跳转语句,或return语句,也不能避免finally块的执行,一般在fi

12、nally块屮作释放资源的操作,如 关闭打开的文件,关闭与数据库的连接等。 try-catch -finally 常用形式 try 语句序列 catch (异常类型,标识符) 异常处理 finally 语句序列 11、课后习题 2、C#语言中不同整型之间进行转换的原则是什么?vP41 答:在整型之间进行转换时,小范围类型可以隐式转换为大范围类型,但大范围类型转换为小范围类型 时需要使用显式转换。 3、简述装箱和拆箱的过程。 答:装箱是将值类型隐式转换为object类型或者转换为由该值类型实现了的接口类型。装箱一个数值会 为其分配一个对象实例,并把该数值拷贝到新对象中。拆箱是显式的把object

13、类型转换为值类型,或者 把值类型实现了的接口类转换为该值类型。 4、分别写岀下列语句执行的结果 Console.WriteLine( u 0 - 0:P good“, 12.34F); 运行结果:12.34-l,234.00%good Console. WriteLine( “ 0 - 0:# goocT,0); 运行结果:0-good Console. WriteLine( 4C 0 0:00000 good ”, 456); 三、常用数据类型的用法 1、字符串的常用用法:求字符串的长度、InseH、Contains IndexOf、Join、Split using System; clas

14、s Test4 public static void Main() string str = while (str.Length -l) Console.WiiteLine( ”第一个出现字母a的位置是:0 ”, i); else Console.WriteLine(“ 字符串屮不包含字母a。“); / (3) string strl = str.Insert(3, “hello”); 在第3 个( 初始序号为 ) 字符前插入hello Console.WriteLine(“插入hello 后的结巣为:0 ”, strl); / (4) string str2 = str 1 .Replace

15、( nhelloH , “me“); Console.WriteLineC*将hello 替换为me 后的结果为:0 ”, str2); / (5) string arr = str2?Split(m); Console.WriteLineC以m为分隔符分离后的字符串有:”) ;for (int j = 0; j Int a=new int 30;/创建一个包含30个int型元素的数组a,并在定义时指定元素个数为30 strin b; int number=int.Parse(Console.ReadLine();/从键盘接收元素个数 ; b=new Stringnumber;/指定数组b共有

16、number个元素,也可以在声明语句中直接用简化的形式为各元素 赋初值 string mystring=new string “frist“,second“,“thrid; 或string mystring=“frist“,secoiKl,thrid; 注意:不带new运算符的简化形式只能用在声明语句中 stringf my string; my string二广fiist“,second“thH(r;错误 mystring=new string “frist“,“second,thrid“;正确 3、枚举定义中注意enum Number: bytexl=255,x2这种形式是错误的 因为在枚

17、举定义常量中,后面常量值系统会自动加一,即x 1=255, x2=256,而byte类型的取值范围只能是 0-255 4、List泛型类的用法例3?9演示泛型列表的定义与用法。 using System; namespace ListExample class Program static void MainO List list = new List(); list. Add( ,z 张三 ); list. Add( ,z 李四 ); list. Insert(0, 王五 ); if (list. Contains(赵六 )=false) list. Add( ,z 赵六 ); forcac

18、h (var item in list) Console?WriteLine (item); for (int i 二0; i -l) Console.WriteLine( H 第一个出现字母a 的位置是:0 ”, i); else Console.WriteLine( H 字符串中不包含字母a。”); / (3) string strl = str.Insert(3, “hello“); 在第3 个(初始序号为 ) 字符前插入hello Console.WriteLine(“插入hello 后的结巣为 :0“, strl); / (4) string str2 = strl .Replace

19、 ( ”hello ”,“me”); Console.WriteLine(“将hello 替换为me 后的结果为:0 ”, str2); / (5) string arr 二str2.Split(m); _ Console.WriteLine( ”以m为分隔符分离后的字符串有:”) ; for (int j = 0; j using System; namcspace ClassExamplc public class Child / 字段 privatc int age; private string name; / 不带参数的构造函数 public Child() name 二 nonc;

20、 / 带参数的构造函数 public Child (string name, int age) this?namc 二namc; this.age = age; / 输出方法 public void PrintChild() Console. WriteLine(0, 1 years old?,name, age); public class Program public static void Main() / 使用new关键字创建对彖 ,new后是调用的构造函数 Child childl = new Child( z, Zhang San ,z, 11); Child child2 = n

21、ew Child( z, Li Si,10); Child child3 二new Child(); / 显示结果 Console. Write( ,zChiId #1: );childl. PrintChild(); Console. Write ( /zChild #2: “ ) ; child2. PrintChild(); Console. Write(z , Child #3: “) ; child3. PrintChildO ; Console? ReadLine (); 访问修饰符public protected private的含义,静态成员的关键字是什么?public:指任何

22、外部的类都可以 不受限制的存取这个类的方法和数据成员protected:除了本身的类可以使用之外,任何继承自此类了的类 都可以存取private:指类中的所有方法和数据成员只能在此类中使用,外部无法存取 静态成员关键字:static 2、构造函数特点: 构造函数总是和其类名相同 构造函数不包括任何返回值 每个类至少有一个构造函数 构造函数可以用private修饰吗? (可以) 3、结构和类的区别 (1)结构是一个值类型,保存在栈上,而类是一个引用类型,保存在受管制的堆上 (2)对结构中的数据进行操作,比类或对象中的数据进行操作速度要快 (3)一般用结构存储多种数据类型的数据,当创建一个很多类或

23、对象共用的小型对象时,使用结构效率 更高 ( 凡是定义为结构的,都可以用类來定义,创建轻量级对彖时可以使用结构) 4、方法的参数传递中,值参传递及引用类型的参数传递 例4-6方法中值类型参数的传递 using System; namespace VaiueTransferExample class Program a+; static void Main() int a = 3; Console. Writ eLine (调用AddOne 之 前, AddOne (a); Console. Writ eLine (调用AddOne 之 后, Con sole ? ReadLineO ; 例4-

24、7方法中引用类型参数的传递 using System; namcspacc RefercnccTransfcrExaniplc class Program public static void AddOne(ref int a) a+; static void Main() int x = 3; Console. Writ eLine (调用AddOne 之 前, AddOne(ref x); Console. WriteLine ( 调用AddOne之后, Con sole. ReadLine (); 重载方法如何调用。例4-10方法重载的用法 using System; namcspacc

25、 MethodOvcrloadingExamplc class Program public static int Add(int i, int j) return i + j; public static string Add (string si, rcturn si + s2; a=0 ,z, a); a二0, x二 0, x); return x + 5; static void MainO Console. WriteLine(Add (1, 2); Console. WriteLine(Add”2) ; Console. WriteLine (Add (10); / 按回车键结束

26、Con sole ? ReadL ine(); 5、课后习题 1、编写一个控制台应用程序,完成下列功能。 (1)创建一个类,用无参数的构造函数输岀该类的类名。 (2)增加一个重载的构造函数,带有一个string类型的参数,在此构造函数中将传递的字符串打印出来。 (3)在Main方法中创建展于这个类的一个对象,不传递参数。 (4)在Main方法中创建属于这个类的另一个对象,传递一个字符串“This is a string.”。 (5)在Main方法中声明类型为这个类的一个具有5个对象的数组,但不要实际创建分配到数组里的对象。 (6)写岀运行程序应该输出的结果。 【解答】 using System

27、; class Test i public Testl() Console. WriteLine( this); public Testi (string str) Console. WriteLine(str); public static void Main() Testi tl = new Testl(); Testi t2 = new TestlfThis is a string.“); Testlfl t3 = new Testi ; 输出结果: Testi This is a string. 4、结构和类的区别是什么? 【解答】 1)结构是一个值类型,保存在栈上,而类是一个引用类型

28、,保存在受管制的堆上。 2)对结构屮的数据进行操作比对类或对彖屮的数据进行操作速度要快。 3)般用结构存储多种类型的数据,当创建一个很多类或对象共用的小型对象时,使用结构效率更高。 五、面向对象的高级编程 1、 面向对象编程的三大原则:封装、继承、多态 2、 类对彖的构造顺序。例5-l基类和扩充类的定义及用法using System; namespace InheritanceExample public class Animal public int MyProperty get; set; publ ic Animal () Console. Writ eLine ( 基类构造函数:Hel

29、lo, Animal! ); public void Eat () Console. WritcLine( , 基类方法:Eating“); public class Cat : Animal public Cat() Console. Writ eLine ( 扩充类构造函数 :Hello, Cat! ); publ ic void Walk () Console. WriteLine C基类方法:Walk“); class Program static void Main(string args) Cat cat 二new Cat (); cat. Eat (); Con sole ? R

30、cadLincO ; 3、virtual override关键字和new关键字的含义 virtual:表示某个方法或者属性可以被扩充类屮同名的方法或者属性重写new:隐藏基类中同名的方法或 属性 六、窗体、控件和组件 1、窗体的创建、显示、隐藏和关闭 Show方法和ShowDialog方法的区别:Show方法将窗体显示出来后就立即返冋,接着执行Show方法 后 面的语句, 因此打开窗口不会阻止用户与应用程序中的其他窗口交互,此类型的窗口称为“无模式” 窗口。 ShowDialog方法将窗体显示出来以后,在该窗体关闭之前应用程序中的所有其他窗口都会被禁用,并且 仅在该窗体关闭后才继续执行Show

31、Dialog方法后面的代码,此类型窗口称为“模式”窗口。 Hide方法和Close方法的区别: Hide方法是将其隐蔽,隐藏后其实例仍然存在。Close方法是直接关闭窗口。 2、如何设置窗体为多文档窗体? 用IsMDIContainer 属性 3、表6?2的常用属性 Enabled:决定控件是否可用 , 取值为true时可用,取值为false时不可用。 BackColor:设置控件的背景色。 ForeColor:设置控件的前景色,即控件上文本的颜色。 Visible:决定控件是否可见,取值为true时可见,取值为false时不可见。 4、控件的Dock属性和Anchor属性的含义 Dock:其

32、用途是使控件与窗体边缘对齐。此属性制定控件在窗体中的驻留位置,其属性设置有LeftRight Top Bottom, Fillv占据窗体中的所有剩余空间None Multiline:决定文本框控件是否可以包含多行内容。当该属性为false吋,TextBox的Width属性可以更 改, 但Height属性是固定的,即只允许输入单行文本,当该属性值为true时,TextBox的Width属性和Height 屈性均可更改,也可直接由鼠标拉动改变文本框的大小,以支持多行文本的输入和显示。 PasswordChar:作为密码输入文本框,在输入字符时,文本框中所要显示代替密码的屏蔽字符。( 注意 : Te

33、xtBox控件还有一个UseSystemPasswordChar属性,若该属性为true,则无论在PasswordChar中指定 了 哪一个字符,最终在TextBox中的文本只能以系统默认的密码字符*来显示 ) 6、CheckBox 控件的CheckState 属性和Checked 属性,Checked 属性返冋值true 或falseo CheckState属性返回Checked (表示选中 ) 或Unchecked ( 表示未选中 ) 枚举值之一。 7、ComboBox 控件的DropDownStyle 属性的含义 DropDownStyle属性:表示组合框的显示样式,其共有三种选择样式:

34、 Simple:同吋显示文本框和列表框,文本框可以被编辑。 DropDown:只显示文杏框,隐藏列表框,且文本框可以被编辑。 DropDownList:只显示文本框,隐藏列表框,但文本框不可被编辑。 8、课洁习题 1 x填空题 (1)使控件是否可以对用户交互做出响应的属性是(Enabled)o (2)控制控件是否显ZF的属性是(Visible)。 (3)若要在文本框中输入密码,常指定(PasswordChar)属性。 (4)若某复选框某时刻CheckState 属性的值为Indeterminate,则其属性Checked的值为(true)。 (5)使用(GroupBox)或(Panel )控件

35、可以将多个RadioButton控件分为两个单选组。 (6)若不希望用户在ComboBox控件中编辑文本,则应将属性(DropDownStyle)的属性值设置为DropDownLi st。 七、目录与文件管理 1、目录与文件操作的命名空间是System.IO 2、操作目录的类Directory类和Directoryinfo类有什么区别 Directoryinfo类必须被实例化后才能使用,而Directory类则只提供了静态的方法,程序中如果多次使用某 个对彖,一般用Directoryinfo类,如果仅执行某一个操作,则使用Directory类提供的静态方法效率更高 一些。 2?1、目录的创建、

36、删除方法 创建目录:public static Directoryinfo CreateDirectory (string path) 其中path为要创建的目录路径。 例:在C盘根目录下创建一个名为test的冃录: Directory.CreateDirectory (,C:test , Fileinfo类必须被实例化,并且每个Fileinfo的实例化必须对应于系统中一个实例存在文件。所有File类 提供的方法都是静态的,如果只想执行一个操作,使用File方法的效率可能更高。 4、FolderBrowserDialog 和OpenFileDialog 区别: FolderBrowserDia

37、log对话框以树形控件的形式将指定路径的文件夹及其子文件夹显示出来,供用户浏览 创建或选择。OpenFileDialog对话框用于让用户选择要打开文件的文件名,用户可以使用此对话框来指定 一个或多个要打开的文件的文件名。 5、StreamWriter及StreamReader类的用法,文本文件的读写方法注意以下两种写法: StreamReader sr=File.OpenText(”C:a.TxF); StreamWriter sw=File.CreateText( ,C:a.Txf,); 6、流的三种基本操作是什么? 从流中读取数据到变量中把变量中的数据写入到流中重新设置流的当前位置,以便于

38、随机读 写。 九、ADO ? NET 与数据操作 1、面向连接方式访问数据库的一般步骤: (1)创建SqlConnection 的实例。 (2)创建SqlCommand的实例。 (3)打开连接。 (4)执行命令。 (5)关闭连接。 2、SqlConnection 对象 、SqlCommand 对象 、SqlDataReader 对象v P205、Sql Data Adapter 象的创建及其常用方法。 3、例9-2演示SqlCommand对象的用法 (操作型例题 ) 4、断开连接访问数据库基本步骤: (1)创建SqlConnection 的实例。 (2)创建SqlDataAdapter的实例,

39、如果需要,可根据select语句生成其他SQL语句。 (3)创建DataSet的实例。 (4)使用Fill方法将数据库中的表填充到DataSet的表中。 (5)利用DataGridView或者其他控件编辑或显示数据。 (6)根据需要,使用Update方法更新数据库。 5、理解DataSet对象,填充DataSet对象。vP213 DataSet与关系数据库中的数据库结构类似,DataSet也是由表、关系和约束的集合组成。 5、简单数据绑定和复杂数据绑定。vP213 6、课后习题 1、使用保持连接方式编写程序,计算各年级平均成绩,并显示结果。 【解答】 using System; namespa

40、ce 习题9_1 public partial class Forml : Form public Form 1 () 取 入 位 读 写 定 7 )z XJZ 12 3 InitializeComponent(); 添加Button按钮在ListBox中显示结果 private void button 1 _Click(object sender, EventArgs e) listBox 1 .Items. AddC 年级平均成绩”) ; string connectionstring 二Properties.Settings.Default.MyDatabaseConnectionStr

41、ing; 根擔连接字符串创建SqlConnection实洌 SqlConnection conn 二new SqlConnection(connectionString); 创建SqlCommand实例,弄设置SQL语句和使用的连接实例 SqlCommand cmd = new SqlCommand(); cmd.CommandText = ” select substring(学号,1,2) as 年级,avg(成绩)as 平均成绩from MyTable2 group by substring(学号,1,2)”; cmd.Connection = conn; try conn.Open()

42、; SqlDataReader r = cmd.ExecuteReader(); while (nRead() = true) listBox 1 Jtems. Add(string.Format( M 0级 r.Close(); catch (Exception err) MessageBox.Show(err.Message, ”计算成绩失败”); finally conn.Close(); 2、使用保持雪接方式编写程序,查询MyTable2屮不及格学生的学号、 姓名、性别和成绩。 并将结果在ListBox 中显示出来。 【解答】 using System; namespace 习题9_2

43、 public partial class Forml : Form public Form 1() InitializeComponent(); private void button l_Click(object sender, EventArgs e) listBox 1.Items. Add( n 学号姓名 性别 成绩” ); string connectionstring = Properties.Settings.Default.MyDatabaseConnectionString; 根 糖连接字符串创逢SqlConnection实初 SqlConnection conn = ne

44、w SqlConnection(connectionString); 创建SqlCommand实例,并设置SQL语句和使用的连接实例 SqlCommand cmd = new SqlCommand(); cmd. CommandT ext = “Select 学号,姓名,性别,成绩From MyTable2 Where (成绩60)n; cmd.Connection = conn; try conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() = true) listBoxl.Items.Add( string.

45、Format( n0 1 2 3 ”,r0, rl, r2, r3); 1八rOLrl); r.Close(); catch (Exception err) MessageBox.Show(err.Message, ”查询成绩失败”) ; finally conn.Close(); 3、编写程序,以“ 编码 名称”的样式在comboBoxl屮显示MyTablel的内容。 【解答】 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System

46、.Drawing; using System.Text; using System.Windows.Forms; using System.Data.SqlClient; namespace 习题9_3 public partial class Forml : Form public Form 1() InitializeComponent(); private void Form l_Load(object sender, EventArgs e) string connectionstring = Properties.Settings.Default.MyDatabaseConnecti

47、onString; / 根 擔连接字符串创建SqlConnection实副 SqlConnection conn = new SqlConnection(connectionString); 创建SqlCommand实例, 并设置SQL语句和使用的连接实例 SqlCommand cmd = new SqlCommand(); cmd.CommandText = “Select * From MyTablel“; cmd.Connection = conn; try conn.Open(); SqlDataReader r = cmd.ExecuteReader(); while (r.Read() = true) comboBox 1 .Items.Add(string.Format( n0 1蔦r0, rl); comboBox 1 .Selectedlndex = 0; 匸Close(); catch (Exception err) MessageBox.Show(err.Message,“ 显示数据失败”) ; finally conn.Close();

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1