c#总结.docx
- 文档编号:10287066
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:32
- 大小:26.66KB
c#总结.docx
《c#总结.docx》由会员分享,可在线阅读,更多相关《c#总结.docx(32页珍藏版)》请在冰豆网上搜索。
c#总结
C#第一章笔记
1.C#程序的框架
namespace包名
{
class类名
{
staticvoidMain(string[]args)
{
Console.WriteLine("Hello.net");
Console.ReadLine();
}
}
}
解释:
namespace:
命名空间的声明,类似于java程序中的package(包),java中包的概念在C#中叫做命名空间。
叫法改了但是意义一样
using:
导入命名空间。
与java中的import关键字类似,导入包
class:
类,c#也是面向对象的高级编程语言,同样也是有class表示类。
程序模板代码会自动取一个类名,叫Program,类名可以更改。
注意:
C#与java不同,不需要类名和文件名一致!
Main:
Main方法程序的切入口,跟java中的main方法是一样的。
注意:
C#中Main中M必须大写!
3.C#中的运算符
算术运算符+-*/%++--
比较运算符><>=<===!
=
条件运算符?
:
赋值运算符=+=-=*=/=%=
逻辑运算符&&||!
与java类似
4.C#代码的注意事项:
1)代码每句结束必须加分号;
2)代码严格区分大小写
3)C#中的注释:
单行//多行/**/
文档注释:
///单行,多行/***/
5.控制台函数
Console类,是控制台类,在控制台进行输入输出。
Console.WriteLine();输出后换行
Console.Write();输出后不换行
Console.ReadLine();输入,代码的末尾出现这句代码,意义是输出窗口停在那里,等待用户的输入然后再关闭。
与java不同的输出方式:
Console.WriteLine("格式字符串",变量列表)
例子:
Stringc="C#";
Console.WriteLine("我的课程名称是:
{0}",c);
输入:
stringname=Console.ReadLine();//接收字符串数据
Console.ReadLine();只能够用于接收字符串,如果需要接收int型数据需要强制类型转换,如下:
intage=int.Parse(Console.ReadLine());
int.Parse()方法就是把字符串强制转换为整数
6.C#中的条件判断结构:
if-else语法:
if(条件)
{
代码;
}
else
{
代码;
}
多重if结构:
if(条件)
{
代码;
}
elseif(条件)
{
代码;
}
...
else
{
代码;
}
switch-case结构:
switch(表达式)-->变量可以是int,单个字符型,字符串型,
{
case常量1:
代码;
break;
case常量2:
代码;
break;
...
default:
代码;
break;
}
注意:
break关键字必不可少,除非case常量:
后没有任何语句的时候可以不要break!
第二章
1.C#中的循环结构
分类:
A.while
B.do-while
C.for
D.foreach
语法:
A.while(循环条件)
{
循环操作;
}
B.do
{
循环操作;
}while(循环条件);
C,for(声明变量并初始化;判断条件;自增或自减)
{
循环操作;
}
三种循环的工作原理跟java中是一模一样。
D.foreach(类型取名in集合或者数组)
{
循环操作;
}
foreach循环一般用于遍历整个集合或数组
2.vs中代码调试的步骤:
1)设置断点双击或者快捷键F9
2)开始调试F5
3)单步调试,研究变量值F10
4)停止调试shift+F5
3.嵌套循环(二重循环)
语法:
for()
{
代码;
for()
{
代码;
...
}
}
嵌套循环break和continue的区别?
当break和continue用在内层循环中时,只会影响内层循环的执行,对外层循环没有影响
break是跳出本层循环,执行外层循环,continue是跳出本次循环而继续执行下一次循环
4.c#中的数组
1)声明一维数组语法:
数据类型[]数组名;
例如:
int[]a;
2)指定数组的大小int[]a=newint[3];
3)给数组赋值(初始化)int[]a=newint[5]{1,2,3,4,5};
int[]a=newint[]{0,1,2,3,4};
int[]a={0,1,2,3,4};
4)获取数组长度:
数组名.Length
5.冒泡排序
一般用于对数组进行升序排序
关键代码记忆:
int[]a={12,89,45,66,88};
inti,j;
inttemp;
for(i=0;i { for(j=0;j { if(a[j]>a[j+1]) { //交换元素 temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } } } //排序后输出 Console.WriteLine("排序后的成绩是: "); for(i=0;i { Console.Write("{0}\t",a[i]); } Console.ReadLine(); 第三章笔记 1.方法的定义 语法: 访问修饰符返回类型方法名(参数列表) { //方法的主体; } 访问修饰符的种类: public公共的,任何的类中都可以访问 private私有的,只能在定义的该类中使用 方法的返回类型 int float double bool string 方法名: 是程序员自己定义的名字,一般方法名有实际的意义,并且要注意命名规范。 参数列表 定义参数的语法: 数据类型参数名 多个参数之间去逗号隔开,方法分为有参的方法和无参的方法 有参的方法 关于值传递,不会保留更改后的结果,需要使用引用传递。 publicstaticintgetNum(refintnum1,refintnum2) { } 调用此方法: getNum(refnum1,refnum2); 2.String类 常用的字符串方法 Equals比较2个字符串的值是否相等 Compare比较2个字符串的大小关系,返回是int型整数,小于返回值小于0,等于返回值等于0,大于返回值大于0. IndexOf返回字符串的下标数字,下标从0开始,没有匹配数据返回-1 LastIndexOf返回下标,获取字符串中最后一个出现的字符下标。 Join把字符串中的每个数据用指定的分隔符连接 Split用指定的分隔符分割字符串,返回分割后的字符串组成的数组 ToLower小写 ToUpper去掉字符串两端的空格 3.Format();格式化输出 4.C#中的数据类型转换 分类: 1.隐式类型转换 2.显示类型转换(强制类型转换) 转换为整型: int.Parse(string); 转换为浮点型: float.Parse(string); 转换为字符串型.ToString()方法 Convert类进行数据类型转换 整型: Convert.ToInt32() 转换为单精度浮点型: Convert.ToSingle(); 转换为双精度浮点型: Convert.ToDouble(); 转换为字符串型: Convert.ToString(); c#第四章windows窗体应用程序 1.在VS中创建Windows应用程序的步骤: 1)打开VS 2)新建项目 3)项目类型: VisualC#项目 4)模板: Windows应用程序 2.窗体重要的属性 Name: 窗体对象的名字,类似于变量的名字 BackColor: 窗体的背景色 ShowInTaskBar: 设置窗体是否出现在任务栏 StartPosition: 窗体第一次出现时的位置 Text: 窗体标题栏显示的文字 TopMost: 设置窗体是否为最顶端的窗体 WindowState: 窗体出现时最初的状态(正常、最大化、最小化) 3.windows应用程序通过时间来处理用户请求 常用的事件: Load: 窗体加载事件 MouseClick: 鼠标单击事件 MouseDoubleClick: 鼠标双击事件 MouseMove: 鼠标移动事件 KeyDown: 键盘按下事件 KeyUp: 键盘释放事件 4.窗体的设计 菜单设置: 工具箱中找到MenuStrip控件 Label: 标签命名规范lbl TextBox: 文本框txt ListBox: 列表框lst ComboBox: 组合框cbo GroupBox: 分组框grp Panel: 面板pnl RadioButton: 单选按钮rdo Button: 按钮btn 5.实现窗体中的跳转 1)定义窗体对象被调用的窗体类名窗体对象=new被调用的窗体类名(); 2)显示窗体窗体对象.show(); 6.消息框的显示MessageBox 最简单的消息框 MessageBox.Show("请输入用户姓名"); 带标题的消息框 MessageBox.Show("请输入用户姓名","输入提示"); 带标题、按钮的消息框 MessageBox.Show("请输入用户姓名","输入提示",MessageBoxButtons.OKCancel); 带标题、按钮、图标的消息框 MessageBox.Show("请输入用户姓名","输入提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information); 第五章笔记 1.窗体布局格式排列设置 1)对齐窗体中的控件 选中要调整的控件格式-->对齐方式 2)使用Anchor排列控件与窗体一起动态调整控件的大小 小技巧: 按住ctrl键选择多个需要调整的控件 3)使用Dock将控件停靠在窗体的边缘或填充窗体 2.MDI窗体 为什么要使用MDI窗体 为了在一个应用程序下同时打开多个窗体,需要使用到MDI 什么是MDI窗体 在MDI窗体中打开多个子窗口 如何使用MDI? A.设置MDI父窗体窗体的属性: IsMdiContainer为true B.设置要在父窗体中显示的子窗体 在菜单中的子菜单中click事件中: 子窗体名对象名=new子窗体名(); 对象名.MdiParent=this;//设置找到父窗体 对象名.Show();//显示子窗体 MDI的特点: 1)启动MDI应用程序,首先显示父窗体 2)MDI是所有子窗体的容器 3)每个应用程序界面只有一个MDI父窗体 4)在任何指定的时间都可以打开多个子窗体 5)任何MDI子窗体都不能移除MDI框架区域 6)关闭MDI父窗体则自动关闭所有打开的MDI子窗体 3.为菜单中的退出添加退出提示 DialogResultd=MessageBox.Show("确定要退出吗? ","提示",MessageBoxButtons.OKCancel,MessageBoxIcon.Information); if(d==DialogResult.OK)//如果选择了OK { Application.Exit();//应用程序退出 } 4.winforms高级控件 1)工具条ToolStrip 属性说明 DisplayStyle设置图像和文本的显示方式 Image按钮/标签上显示的图片 Text按钮/标签上显示的文本 事件说明 Click单击按钮/标签时,触发该事件 2)选项卡TabControl 属性说明 MultiLine是否可以显示多行选项卡 TabPages包含的选项卡页的集合 SelectedIndex当前所选选项卡页的索引值 3)图片框PictrueBox 4)图片列表ImageList 属性: images存放图片集合 5)定时器Timer 属性说明 Interval事件发生的频率,以毫秒为单位 Enabled是否定时引发事件 事件说明 Tick定时发生的事件 Timer_tick事件 //如果当前显示的图片索引没有到最大值就继续增加 if(index<图片集合控件name.Images.Count-1) { index++; } else//否则从第一个图片开始显示,索引从0开始 { index=0; } //设置图片框显示的图片 图片容器name.Image=图片集合控件name.Images[index]; 6)窗体名.Show();与窗体名.ShowDialog();的区别: 窗体名.Show();打开一个窗体 窗体名.ShowDialog();将窗体显示为具有所有指定者的模式对话框 7)登录验证、用户权限参考代码 自定义方法-用户验证 privateboolValidateInput() { if(txtLogInId.Text.Trim()=="") { MessageBox.Show("请输入用户名","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information); txtLogInId.Focus();//让文本框获取光标 returnfalse; } elseif(txtLogInPwd.Text.Trim()=="") { MessageBox.Show("请输入密码","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information); txtLogInPwd.Focus(); returnfalse; } elseif(cboLogInType.Text.Trim()=="") { MessageBox.Show("请选择登录类型","输入提示",MessageBoxButtons.OK,MessageBoxIcon.Information); returnfalse; } else { returntrue; } } 自定义方法-权限登录: publicvoidShowUserForm() { switch(cboLogInType.Text) { //如果是学员,显示学员窗体 case"学员": MessageBox.Show("抱歉,您请求的功能尚未完成! "); break; //如果是教员,显示教员窗体 case"教员": MessageBox.Show("抱歉,您请求的功能尚未完成! "); break; //如果是管理员,显示管理员窗体 case"管理员": AdminFormadminForm=newAdminForm(); adminForm.Show(); break; default: MessageBox.Show("抱歉,您请求的功能尚未完成! "); break; } } 调用方法-登录按钮click事件中: //如果验证通过,就显示相应的用户窗体,并将当前窗体设为不可见 if(ValidateInput())//用户验证的方法--返回的是bool { //显示相应的窗体 //将输入的用户名保存到静态变量中 UserHelper.loginId=txtLogInId.Text; //将选择的登录类型保存到静态变量中 UserHelper.loginType=cboLogInType.Text; ShowUserForm();//显示相应用户的主窗体 this.Visible=false; } UserHelper.cs publicclassUserHelper { publicstaticstringloginId="";//用户名 publicstaticstringloginType="";//登录类型 } C#第六章笔记ADO.NET连接数据库 的主要组件: 1)DataSet数据集 2).netFramework数据提供程序 中常用的操作对象 1)Connection对象负责连接数据库 2)Command对象负责对数据库执行命令 3)DataSet存放独立于数据源的数据 4)dataReader负责从数据源读取数据 5)dataAdapter负责数据集个数据库的联系 本章重点讲1、2个对象 3.支持的数据库以及所在的命名空间 数据库类型所在的命名空间 SQLServerSystem.Data.SqlClient OLEDBSystem.Data.OleDb ODBCSystem.Data.Odbc OracleSystem.Data.OracleClient 4.连接数据库的步骤 1)定义连接字符串 DataSource=.;InitialCatalog=库名;uid=用户名;pwd=密码 2)创建连接数据库的对象 SqlConnectionconn=newSqlConnection(定义的连接字符串变量);注意: 使用SqlConnection对象必须要导入命名空间usingSystem.Data.SqlClient; 3)打开数据库的连接 conn.Open(); 5)处理异常代码块 try { 可能出现异常的代码; } catch(处理的异常类型) { 处理异常的代码 } finally { 无论如何都要执行的代码 } 6.Command对象的主要成员: 属性: ConnectionCommand对象使用的数据库连接 CommandText执行的sql语句 方法 ExecuteNonQuery执行没有返回数据行的sql语句,如update、insert、delete ExecuteReader读取结果集的对象 ExecuteScalar返回单个值,如执行count(*)语句 使用Command步骤: 1、创建数据库连接 2、定义SQL语句 3、创建Command对象 4、执行方法 示例代码: SqlConnectionconnection=newSqlConnection(connString); stringsql="SELECTCOUNT(*)FROMStudent"; connection.Open();//打开数据库连接 SqlCommandcommand=newSqlCommand(sql,connection); intnum=(int)command.ExecuteScalar(); 以下代码可不抄! 综合案例对应数据库是否存在真实的管理员信息 判断用户是否存在解题思路 1)建立数据库连接 增加DBHelper类 //数据库连接字符串 privatestaticstringconnString="DataSource=.;InitialCatalog=MySchool;UserID=sa;Pwd=sa"; //数据库连接Connection对象 publicstaticSqlConnectionconnection=newSqlConnection(connString); 自定义方法--判断用户名是否存在 publicboolValidateUser(stringloginType,stringloginId,stringloginPwd,refstringmessage) { intcount=0;//数据库查询的结果 boolisValidUser=false;//返回值,是否找到该用户 //查询是否存在匹配的用户名和密码 if(loginType=="管理员")//判断管理员用户 { //查询用sql语句 stringsql=string.Format( "SELECTCOUNT(*)FROMAdminWHERELogInId='{0}'ANDLogInPwd='{1}'",loginId,loginPwd ); try { //创建Command命令 SqlCommandcommand=newSqlCommand(sql,DBHelper.connection); DBHelper.connection.Open();//打开连接 count=(int)command.ExecuteScalar();//执行查询语句 //如果找到1个,验证通过,否则是非法用户 if(count==1) { isValidUser=true; } else { message="用户名或密码不存在! "; isValidUser=false; } } catch(Exceptionex) { message=ex.Message; Console.WriteLine(ex.Message);//出现异常,打印异常消息 } finally { DBHelper.connection.Close();//关闭数据库连
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 总结