级C#复习.docx
- 文档编号:5852719
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:15
- 大小:22.26KB
级C#复习.docx
《级C#复习.docx》由会员分享,可在线阅读,更多相关《级C#复习.docx(15页珍藏版)》请在冰豆网上搜索。
级C#复习
1、.NETFramework中的MSIL、CLR和JIT分别是什么?
CLR是否有自动内存管理能力?
P1
MSIL:
中间代码CIR:
C#语言公共语言代码运行的一种运行环境,与java语言的虚拟机相似JIT:
在CIR中将公共语言编译成CPU可执行的机器码的一种即时编译器
2、C#中WriteLine()方法中的参数格式。
P4例
Console.WriteLine(“姓名:
{0},年龄:
{1}”,name,age);
3、字符串(string类)的定义、比较、搜索、判断为空、获得字串、字符串删除、删除所有空格、字符串插入、字符串替换等方法。
P12-14
定义:
StringLastName;
LastName=”Ming”;
StringFirstName=”Zhang”;
StringName=FirstName+””+LastName;
StringSameName=Name;
Char[]s2={‘计’,’算’,’机’,’科’,’学’};
Strings3=newString(s2);
搜索:
Strings=”ABC科学”;
Inti=s.IntdexOf(“科”);//i指的是搜索到的位置,未搜索到i=-1
比较:
Strings1=”abc”;
Strings2=”bcd”;
Intn=string.Compare(s1,s2);
if(n==0)
{
Console.WritelLine(“字符串相同”);
}elseif(n<0)
{
Console.WritelLine(“s1 }else { Console.WritelLine(“s1>s2”); } 判断字符串是否为空: If(s1.Length==0) { Console.WritelLine(“s1为空”); } 得到子字符串或字符: Strings2=s1.SubString(2,2);//从第二个字符开始取2个字符,s2=”cd” Chars3=s1[0];//s3=”a” 字符串删除函数: Stringsc=s1.Remove(1,2);//从第一个字符开始删除后2个字符,sc=”a” 插入字符串函数: Strings1=s2.Insert(3,”软件”);//在s2中第三个字符后面插入“软件”,s1=”bcd软件” 字符串替换函数: Strings1=s2.Replace(“bcd”,”软件”);//s1=”软件” 字符串转换为字符数组: Strings=”计算机科学”; Char[]s1=s.ToCharArray(0,s.Length); 其他数据类型转为字符串: Inti=9; Strings8=i.ToString();//s8=”9” Folatn=1.9f; Strings9=n.ToString();//s9=”1.9” 大小写转换: Strings=”ABCDefg”; Strings1=s.ToLower();//把字符转为小写,s1=”abcdefg” Strings2=s.ToUpper();//把字符转为大写,s2=”ABCDEFG” 删除所有空格: Strings=”Abc”; s.Trim(); 4、foreach语句的使用;P19 Foreach(类型变量名in表达式)循环语句 UsingSystem; ClassTest { PublicstaticvoidMain() { Int[]I=(10,20,30,40); Foreach(intminI)//变量m在I数组中从第1个字符开始循环到最后一个字符结束 Console.WriteLine(“{0}”,m); } } 5、使用Convert类和parse方法进行类型转换; Strings=”123456789”; Ints1=ConvertToInt32(s); Inta=int.parse(s); 6、属性是如何在类中使用的? 和类的成员方法相比有什么异同? P24-25 usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespaceConsoleApplication1 { publicclassProgram { privatestringP_name="张三"; privateintP_age=12; publicvoidDispaly() { Console.WriteLine("姓名: {0},年龄: {1}",P_name,P_age); } publicstringName { get{returnP_name;} set{P_name=value;} } publicintAge { get{returnP_age;} set{P_age=value;} } } publicclassTest { publicstaticvoidMain() { ProgramOneProgram=newProgram(); OneProgram.Name="田七"; //value=“田七”通过set方法修改变量P_name strings=OneProgram.Name; //通过get方法得到变量P_name的值 intx=OneProgram.Age; //通过get方法得到变量P_age的值 OneProgram.Dispaly(); //调用Dispaly方法显示 } } } 7、数据库应用程序设计的两种方式: 连接方式和不连接方式。 连接方式的设计步骤(P186),不连接方式的设计步骤(P185-186) 设计一个连接方式数据库应用程序一般包括以下基本步骤: a)建立数据库,包括若干个表,在表中添入数据(若干记录)。 b)用SqlConnection类建立数据库应用程序和数据库连接对象。 c)使用SQLCommand类对象用SQL语句来访问数据库中的数据,直接在数据库的表中查询指定记录、增加记录、删除记录,修改记录中的数据。 使用ADO.Net设计一个不连接方式数据库应用程序一般包括以下基本步骤: a)创建数据库,包括若干个表,在表中添入数据。 b)用SqlConnection类建立数据库应用程序和数据库连接对象。 c)用SqlDataAdapter类对象从数据库指定表中取出感兴趣的记录。 d)从数据库指定表中取出的感兴趣记录做成一个新表,填充到DataSet类对象中,可填充多个表,并可在DataSet类对象中指定表和表的关系。 DataSet对象建立在内存中,可以认为是数据库在内存中的一个子集。 取出所有感兴趣的数据后,断开和数据库的连接。 e)将DataSet类对象中的数据作为数据源,用支持数据绑定的控件(如ListView、TextBox等控件)的属性绑定到DataSet数据源中的表或表的字段,供用户浏览、查询、修改。 f)及时更新DataSet中的内容,并把修改的数据存回源数据库。 8、连接方式设计数据库应用程序时,需建立SqlConnection对象和SqlCommand对象。 SqlCommand对象的执行方法有ExecuteReader(执行Select语句,配合SqlDataReader来保存选择的记录,完毕后SqlDataReader需要手动调用close()方法关闭)、ExecuteNonQuery(执行Insert、Update、Delete语句)和ExecuteScalar(执行统计类的SQL语句,例如count等)。 连接方式设计数据库应用程序需要手动调用SqlConnection对象的Open()和Close()方法来打开/关闭数据库连接。 9、完毕后SqlDataReader对象保存SQL选择语句返回记录中的第一条记录前一个位置,通过调用该实例的Read方法来使指针逐条记录下移。 10、不连接方式设计数据库应用程序时,数据库分为三层(远端服务器的数据库源、本地内容中的内存数据库DataSet/DataTable、客户端显示插件DataGridView等)。 组件SqlDataAdapter负责远端数据库和内存数据库之间的通讯,其隐藏了SelectCommand等命令,自动完成数据库的连接于关闭,调用其Fill和Update方法完成内存数据库和远端数据库的数据传输。 BindingSource负责内存数据库和DataGridView之间的数据同步; 11、C#中参数传递的两种方法: 值参数(不含任何修饰符)、引用参数(前+ref修饰);P26 方法的声明格式: 方法修饰符返回类型方法名(形参列表){方法体} Publicstaticvoidname() {Console.WriteLine(“田七”); } 方法修饰符包括: new、public、protected、internal、private、static、virtual、sealed、override、abstract和extern。 参数传递--参数值(不含任何修饰符) PublicstaticvoidF2(chari) {i=”d”;} 参数传递--引用参数(前+ref修饰) PubilcstaticvoidF1(refchari) {i=”b”;} StaticvoidMain(string[]args) { Chara=”c”; F2(a);//值参数,不能改变外部的a的值 Console.WriteLine(a);//a未被修改,显示c F1(refa);//引用参数,函数修改外部的a的值 Console.WriteLine(a);//a被修改为b,显示b } 12、C#中可以使用Lock、Mutex和Monitor来实现线程之间的互斥; 用C#语句Lock实现互斥 ObjectthreadLock=newObject;//在window1类中定义变量 publicvoidFun1() { intk,n; for(k=0;k<4;k++) {//lock(this)//这里的this是window1类的对象 lock(threadLock)//具有同一对象(本例为threadLock)的代码区是临界值 {//这对大括号中的代码为threadLock的临界区 n=num;//该临界区包括两个部分,函数Fun1和Fun2中的临界区 n++; Thread.Sleep(10); num=n; } Thread.Sleep(50); } }//退出该方法,线程结束 publicvoidFun2() { intk,n; for(k=0;k<4;k++) {//lock(this)//如有线程进入此临界区,其他线程就不能进入此临界区 lock(threadLock)//如果有多个共享数据区,此方法使用比较好 {//也不能进入前面的临界区 n=num; n++; Thread.Sleep(10); num=n; } Thread.Sleep(100); } } 用C#语句Mutex实现互斥 publicvoidFun1() { intk,n; for(k=0;k<4;k++) { mut.WaitOne();//等候互斥体访问权 n=num;//mun.WaitOne()和mun.ReleaseMutex()之间是互斥体 n++;//Mutex类对象mut的互斥体包含两部分,函数Fun1和Fun2中互斥体 Thread.Sleep(10);//有线程进入互斥体,其他线程不能进入任何一个互斥体 num=n; mun.ReleaseMutex()//释放互斥体访问权 Thread.Sleep(50); } }//退出该方法,线程结束 publicvoidFun2() { intk,n; for(k=0;k<4;k++) { mut.WaitOne(); n=num; n++; Thread.Sleep(10); num=n; mun.ReleaseMutex() Thread.Sleep(100); } } 13、C#中的数据类型: 简单类型P9,一个字符占2个字节,数组类型P11-12(一维数组、二维数组、交错数组的定义和使用,Count、Capacity、Length等属性); 数组定义: Int[]arr; Int[,]arr; 14、线程的创建方法是? P187-189(注意有参数和没参数两种形式); Publicvoidfun1()//定义一个在线程中执行的方法 {Thread.Sleep(500);//模拟费时计算 intx=2,y=3,z; z=x+y;//退出该方法,线程结束 } Threadthread=newThread(newThreadStart(fun1));//创建线程无参 thread.Start();//启动线程 Threadthread1=newThread(newParameterizedThreadStart(fun2));//有参 15、RichTextBox和TextBox相比,可以完成复杂文字处理功能与Word相似; 16、C#2.0中不允许在函数中直接修改线程外控件属性; 使用控件Invoke方法修改外控件属性 17、和基于TCP的Socket编程相比,基于UDP的Socket编程的优点和缺点是什么? P218 基于UDP编程: 优点: 无连接(速度快)、可用于广播(组播)、消耗网络宽带小 缺点: 不可靠、安全性差、不保证报文顺序交付 18、(类的定义和使用)定义Book类,包括私有成员变量表示书的书名、ISBN、作者、价格、馆藏数量,增加有参数和无参数的构造函数,定义显示书记五项信息的显示的方法,定义修改馆藏数量的方法,定义修改书名的方法,定义修改价格的方法(或者用属性来修改这些信息)。 在主函数中生成Book类对象,调用Book类方法来修改和显示馆藏数量、书名和价格等信息。 参考P241.9.2Person类的例子。 usingSystem; usingSystem.Collections.Generic; usingSystem.Linq; usingSystem.Text; namespaceConsoleApplication2 { publicclassbook { privatestringbookName,ISBN,zuoZhe; privateintshuLiang,jiaGe; publicvoidDispaly() { Console.WriteLine("书名: {0}",bookName); Console.WriteLine("ISBN: {0}",ISBN); Console.WriteLine("作者: {0}",zuoZhe); Console.WriteLine("数量: {0}",shuLiang); Console.WriteLine("价格: {0}",jiaGe); } publicstringbName { set{bookName=value;} get{returnbookName;} } publicstringiBNS { set{ISBN=value;} get{returnISBN;} } publicstringZuoZhe { set{zuoZhe=value;} get{returnzuoZhe;} } publicintShuLiang { set{shuLiang=value;} get{returnshuLiang;} } publicintJiaGe { set{jiaGe=value;} get{returnjiaGe;} } } publicclassProgram { staticvoidMain(string[]args) { bookbook1=newbook(); Console.WriteLine("请输入书名: "); book1.bName=Console.ReadLine(); stringname=book1.bName; Console.WriteLine("请输入IBNS: "); book1.iBNS=Console.ReadLine(); stringibns=book1.iBNS;; Console.WriteLine("请输入作者: "); book1.ZuoZhe=Console.ReadLine(); stringzuozhe=book1.ZuoZhe; Console.WriteLine("请输入价格: "); book1.JiaGe=Convert.ToInt32(Console.ReadLine()); intjiagge=book1.JiaGe; Console.WriteLine("请输入数量: "); book1.ShuLiang=Convert.ToInt32(Console.ReadLine()); intshuliang=book1.ShuLiang; Console.WriteLine("书籍的基本信息: "); book1.Dispaly(); Console.ReadLine(); } } } 19、(文件和流)实现将某一特定目录(例如C: \ProgramFiles)下的所有的文件夹在TreeView结构和ListView结构中显示(参考资源管理器实验); UsingSystem.IO;//使用文件必须引用命名空间 //获取某路径中的目录信息: stringPath=某路径字符串; DirectoryInfoMyFolders=newDirectoryInfo(Path); DirectoryInfo[]folders=MyFolders.GetDirectories(); foreach(DirectoryInfofolderinfolders) { TreeNodet=newTreeNode(folder.Name,2,2); treeview1.Nodes.Add(t); } //添加文件项目到listview DirectoryInfofolder=newDirectoryInfo(Path); DirectoryInfo[]difs=folder.GetDirectories(); foreach(DirectoryInfodifindifs) { ListViewItemitem2=newListViewItem(dif.Name,2); listView1.Items.Add(item2); } 20、(WPF编程布局)用WPF实现菜单的编写以及布局。 (参照第4章课件P4-6) 21、(ADO.NET编程)实现本地数据库的连接(连接方式和不连接方式均可,建议选择连接方式),能够进行数据库的查询、注册、登录、修改、删除等操作。 (最后两次数据库实验)。 Publicstaticvoiddenglu { stringconnstring="DataSource=localhost;InitialCatalog=test; IntegratedSecurity=true"; //stringSqlStr="Select*fromstuwhereusername='"+UserName.Text+”andpassword=”+PassWord.password; if(UserName.Text==""||PassWord.Password=="")//登录 { MessageBox.Show("账号密码不能为空"); Return();}else{ stringu=UserName.Text; stringp=PassWord.Password; SqlConnectiona=newSqlConnection(connstring); a.Open(); SqlCommandb=newSqlCommand("selcet*formstuwhereusername="+u+"andpassword="+p,a); b.ExecuteNonQuery(); stringu2=b.ExecuteScalar().ToString(); if(u2==u) { MessageBox.Show(“登录成功”); } else { MessageBox.Show(“登陆失败! ”); } a.Close(); }} //插入一条记录(注册)Insert Publicstaticvoidzhuce{ stringconnstring
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 复习
![提示](https://static.bdocx.com/images/bang_tan.gif)