c#程序设计复习资料.docx
- 文档编号:7988222
- 上传时间:2023-01-27
- 格式:DOCX
- 页数:41
- 大小:35.84KB
c#程序设计复习资料.docx
《c#程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《c#程序设计复习资料.docx(41页珍藏版)》请在冰豆网上搜索。
c#程序设计复习资料
C#程序设计基础知识
接口
接口是引用类型的,类似于类,和抽象类的相似之处有三点:
1、不能实例化;
2、包含未实现的方法声明;
3、派生类必须实现未实现的方法,抽象类是抽象方法,接口则是所有成员(不仅是方法包括其他成员);
另外,接口有如下特性:
接口除了可以包含方法之外,还可以包含属性、索引器、事件,而且这些成员都被定义为公有的。
除此之外,不能包含任何其他的成员,例如:
常量、域、构造函数、析构函数、静态成员。
一个类可以直接继承多个接口,但只能直接继承一个类(包括抽象类)。
try
{
//执行的代码,其中可能有异常。
一旦发现异常,则立即跳到catch执行。
否则不会执行catch里面的内容
}
catch
{
//除非try里面执行代码发生了异常,否则这里的代码不会执行
}
finally
{
//不管什么情况都会执行,包括trycatch里面用了return,可以理解为只要执行了try或者catch,就一定会执行finally
}
1,委托
委托本质上是一种方法接口,它相当于c语言中的指针,比函数指针安全,在c#中用于事件的处理。
事件不是委托,在c#中处理事件的逻辑常包装为委托。
委托允许讲方法作为参数进行传递,可以用于定义回调方法,委托可以连接在一起。
ADO.NET
ADO.NET是一组用于和数据源进行交互的面向对象类库。
通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。
ADO.NET允许和不同类型的数据源以及数据库进行交互。
然而并没有与此相关的一系列类来完成这样的工作。
因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。
一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过.NET的ADO.NET类库来进行连接。
简单的说,这是说怎么样和数据库交互(增删改查),
ADO.NET五个主要对象
connection连接对象,
command执行命令和存储过程,
datareader可从数据源提供高性能的数据流
dataadapter适配器,支持增删查询,
dataset数据及对象相当于内存里的多张表
NEW关键字用法
1,new运算符用于创建对象和调用构造函数
2,new修饰符用于想积累成员影藏集成成员
类与接口的异同
异
1,接口不能实例化
2,借口不包含方法的实现
3,类只能从一个基类集成实现
同
1,类与接口可以继承与多个接口
2,接口类似于抽象基类
3,接口可以包含事件索引器,方法和属性
第3章C#程序设计基础
数据类型
C#中有两种类型:
值类型、和引用类型
值类型的变量直接存储数据如:
整形等
引用类型的变量存储数据的引用如:
对象。
对于引用类型,两个变量可能引用同一个对象,因此对一个变量的操作可能影响另一个变量所引用的对象
如:
classProgram
{
staticvoidMain(string[]args)
{
Aa,a1,a2;
a=newA();
a1=a;
a2=a;
a1.n=33;
Console.Write(a2.n.ToString());
Console.Read();
}
}
classA
{
publicintn=0;
}
对于值类型,每个变量都有它们自己的数据存储空间,因此对一个变量的操作不可能影响另一个变量。
C#的值类型进一步划分为简单类型、枚举类型和结构类型
C#的引用类型进一步划分为类类型、接口类型、数组类型、和委托类型。
注:
变量必须指定数据类型
数据类型
C#中,任何类型值都可以按对象处理
值类型的值则通过执行装箱和拆箱操作按对象处理。
实现方法:
C#中的每个类型直接或间接地从object类型派生。
引用类型的值都被当作object来处理。
对于值类型,可以将int值转换为object,处理之后在转换回int。
classTest
{
staticvoidMain()
{
inti=123;
objecto=i;//Boxing
intj=(int)o;//Unboxing
}
}
数据类型
基本整型(int)
短整型(short)
整形长整型(long)
单字节整形(byte)
字符型(char)
简单类型单精度型(float)
实型
值类型双精度型(double)
布尔型(bool)
小数类型(decimal)
结构类型
枚举类型
整数类型
整型定义:
就是变量的值为整数的类型
计算机语言中的整数跟数学上的整数定义有点差别,计算机语言中的整数有取值范围。
整数类型分类:
短字节型(Sbyte)、字节型(Byte)
短整型(Short)、无符号短整型(Ushort)
整型(Int)、无符号整型(Uint)、
长整型(Long)、无符号长整型(Ulong)。
注:
变量名称前面的“u”是“Unsigned”的缩写,不能在这些类型的变量中存储负号。
以上这些不同的整数类型可以用于存储不同范围的数值,占用不同的内存空间。
常量类型:
可以用数值加上后缀方法指定常量类型:
u后缀:
uint或者ulong类型
l后缀:
long或者ulong类型
ul后缀:
ulong类型
f后缀:
float类型
d后缀:
double类型
m后缀:
decimal类型
例如;12m
布尔型和字符类型
布尔型
类型说明符:
bool
布尔类型值,True与False。
如:
staticvoidMain(string[]args)
{
boolb=true;
if(b)
{
Console.Write(b.ToString());
Console.Read();
}
}
字符类型
字符类型包括数字字符,英文字母、表达符号等
字符类型按照国际上公认的标准,采用Unicode字符集
字符类型
Unicode是16位字符,占两个字节,以无符号16位整形存储,共65535个;
可表示世界上已知多数的书面语言;
前128个与ASCII重叠。
128-255表示拉丁字母,重音符号、货币符号等
字符型变量定义
charmychar=‘x’;
Charmychar=(char)88;
Intàchar需要强制转换
Charàint,float,decimal可以隐式转换
doublen='3';
字符类型
\n换行
\t横向跳格
\v竖向跳格
\b退格
\r回车
\f走纸换页
\\反斜杠字符
\‘单引号
\“双引号
字符类型
字符型变量赋值方法
直接赋值:
charch=‘a’;
转义字符:
charch=‘\x61’;
强制转换:
charch=(char)97;
unicode码:
charch=‘\u0061’;
实数类型
实数类型分类
单精度(Float)
双精度(Double)
Decimal
选取原则:
对精度要求不高的计算中采用单精度型
而采用双精度的结果将更为精确
Decimal类型主要用于金融和货币的计算,精度更高
小数类型
c#提供了decimal类型,精度为28-29位有效数字,他没有无符号形式。
在精度很重要的场合,可以选择该类型。
浮点型和小数类型之间不能进行隐式转换,在一个表达式中不能同时用这两种类型。
注:
小数常数后必须跟着一个m或M
字符串
C#支持string类型。
C#把字符串当成对象,封装了所有字符串所拥有的操作、排序和搜索方法。
定义字符串方法
strings="abcdef";
字符串
字符串中可以包含转义字符
如“\n”或“\t”
在字符串中使用反斜杠,必须在其前面再加一个反斜线。
(反斜线本身在目录路径中会用到)
如下面代码所示:
stringdirectory="C:
\\text";
字符串
string类型变量可以看作是char变量的只读数组
可以使用下面的语法访问每个字符:
stringmyString="abcdef";
charmyChar=myString[1];
同时,我们还可以使用ToCharArray()函数,把string类型的变量转存到字符数组里面。
classProgram
{
staticvoidMain(string[]args)
{
strings="abcdef";
char[]myChar=s.ToCharArray();
Console.WriteLine(“myChar输出如下:
");
foreach(charcinmyChar)
Console.WriteLine("{0}",c);
Console.ReadLine();
}
}
字符串
字符串的串接:
使用“+”符号
stringcity="南京市";
stringstreet="新街口";
stringaddress=city+street;
Console.WriteLine(“地址是:
”+address);
输出结果:
“地址是:
南京市新街口”。
String类有很多方法和属性
常见的有:
Length属性、ToUpper/ToLower方法、IndexOf方法、SubString方法等。
字符串
Length属性
stringstr2=”youarewelcome!
”;
intn=str2.Length;
那么n就得到str2字符串的长度
ToUpper()方法
把字符串中所有的字母都变成大写
ToLower()方法
把字符串中所有的字母都变成小写
字符串
IndexOf()方法
从字符串找出第一次出现某子字符串的位置
stringstr1=”youarewelcome”;
intn=str1.IndexOf(“are”);
那么n的值为4;
SubString()方法
从字符串的n1个字符开始,长度为n2的子串
str1.SubString(n1,n2);
例题
staticvoidMain(string[]args)
{
strings="hello";
char[]ch=newchar[]{'a','b'};
stringss=newstring(ch);
StringBuilderstbd=newStringBuilder();
stbd.Append(s);
stbd.Append(ss);
stbd.Replace("ll","kk",5,2);
s=stbd.ToString();
stbd.Remove(0,stbd.Length);
Console.Write(stbd);
Console.Read();
}
变量
什么是变量
值可以改变的量。
变量代表了存储单元,每个变量都有一个数据类型。
变量名的命名规则
第一个字符必须是字母、下划线、或@
后面的字符必须是字母、数字、下划线。
如:
myInt_test@n#n9n
变量赋值
定义时赋值
用赋值语句赋值
注意:
变量名区分大小写,
变量必须先定义后使用。
变量名不能和保留字重复
变量
变量的声明
[修饰符]数据类型变量1,变量2,…变量n;
访问修饰符:
public,private,protected等
数据类型可以是值类型,引用类型等
例:
privateintn;
inta,b,c;double@d;
变量赋初值,
例:
doubled1=2.4,d2=3.5;string@str="33.3";
stringstr2="d:
\\temp\\a.txt“;
stringstr3=@"d:
\temp\a.txt";
Console.Write(str3);
常量
常量:
值在整个生命周期内始终不变的量
不可以对常量赋值
常量声明:
[修饰符]const数据类型变量1,变量2,…变量n;
例如:
privateconstdoublePI=3.1415926;
定义常量时,表达式中只能是常量和常数privateconstdoublePI=3.1415926*n;
运算符与表达式
运算符
用于执行某种计算的字符的组合。
按操作数分类
单目、双目和三目运算符。
按功能分类
算术运算符
赋值运算符
关系运算符
逻辑运算符
位运算符
布尔赋值运算符
算术运算符
运算符
++整数、浮点数、charvar1=++var2;var1的值是var2+1,var2递增1
––整数、浮点数、charvar1=––var2;var1的值是var2–1,var2递减1
++整数、浮点数、charvar1=var2++;var1的值是var2,var2递增1
––整数、浮点数、charvar1=var2––;var1的值是var2,var2递减1
+整数、浮点数var1=+var2;var1的值等于var2的值
–整数、浮点数var1=–var2;var1的值等于var2的值除乘以–1
算术运算符
加法运算符
用于整型、实型、枚举型、字符串型和代表型
例:
乘法运算符、除法运算符
只适用于整数以及实数之间的操作;
除法运算符默认的返回值类型与精度最高的操作数类型相同。
比如,5/2的结果是2,而5.0/2的结果是2.5。
取余运算符
求模运算既适用于整数类型,也同样适用于浮点型。
如7%3的结果为1,7%1.5的结果为1。
赋值运算符不用看
赋值运算符分为:
简单赋值运算符复合赋值运算符
如下表所示:
简单赋值运算符
“=”就是赋值运算符。
格式:
变量=表达式
例:
a=33;
在运算中表达式值的类型必须和变量类型一致或可以隐式转换成变量所属类型
复合的赋值运算符
关系运算符了解
C#共支持6种关系运算符
移位运算符
类型转换简单了解converint,convertToDouble.convertToInt
隐t式转换
由编译器自动进行的类型转换
如:
charcVar=‘a’;
ushortusVar;
usVar=cVar;
显式转换
又叫强制类型转换,需要明确指出转换的类型。
转换过程中可能出现精度降低、异常等情况。
如;intn=10;
doubled=33.333;
n=(int)d;
使用Convert命令进行显式转换了解
可以实现各种数据类型之间的强制类型转换
如:
staticvoidMain(string[]args)
{
stringstr="33.3a";
doubled=Convert.ToDouble(str)+3;
Console.Write(d);
Console.Read();
}
条件分支
有条件地执行代码。
条件满足就执行代码。
循环
重复执行相同的语句。
重复执行一定的次数,或者在满足测试条件后停止执行。
跳转
条件语句掌握
条件语句依据一个布尔表达式的值从一系列可能被执行的语句选择出要执行的语句。
包括:
if语句
switch语句
条件语句
If语句有3种基本形式:
单条选择、如果/否则、多项选择情形选择。
1.单选If语句
基本语法如下:
if(booleanexpression)
{
……;
}
执行过程
条件语句if语句1考
示例程序如下:
staticvoidMain()
{
inta,b;
stringc;
Console.Write(“输入一个数值:
”);
c=Console.ReadLine();
a=int.Parse(c);
b=30;
if(a>10)
Console.WriteLine(“a+b={0}+{1}={2}”,a,b,a+b);
}
条件语句
2.如果/否则If语句
基本语法如下:
if(booleanexpression)
{
表达式A;
}
else
{
表达式B;
}
执行过程
条件语句if语句2
publicstaticvoidMain()
{
doublea,b,x;
Console.Write(“输入一个数值:
”);
a=double.Parse(Console.ReadLine());
Console.Write(“再输入一个数值:
”);
b=double.Parse(Console.ReadLine());
if(a>b)
x=a;
else
x=b;
Console.WriteLine(“themaxis:
{0}”,x);
}
循环语句
循环语句功能:
反复执行某一语句块,实现循环结构
C#提供了四种循环语句
for语句
foreach语句
while语句
do语句
循环语句for循环看着办
for语句执行过程
1、求解表达式1
2、求解条件表达式2
3、表达式2的值是真则执行循环体以及语句3,否则推出循环
For循环
main()
{
inti,sum=0;
for(i=1;i<=100;i++)
sum=sum+i;
for(i=100;i>=0;i--)
sum=sum+i;
}
For循环会用
for语句的变形:
1、表达式1或表达式3省略,但分号“;”不能省略。
i=1;for(;i<=100;i++)sum=sum+i;或者
for(i=1;i<=100;){sum=sum+i;i++;}
2、表达式2也可也省略,但很少这样做,必须在循环语句中加上结束条件。
for(i=1;;i++)
{sum=sum+i;
if(i>100)break;}
3、for语句中三个表达式的类型不限
{inti,sum;
for(sum=1,i=1;i<=100;sum+=i,i++);
foreach语句功能:
1、依次从集合C中取出一个元素,放在变量v中
2、每取出一个元素后执行一次循环体
3、直到所有元素都使用一遍
格式:
foreach(变量类型v迭代变量in集合表达式C)
{
循环体语句块
}
Foreach循环
1、变量类型要和数组的类型一致,且必须声明后使用;
2、数组内元素的个数决定循环内程序段重复执行的次数;
3、每次进入循环,会依次将数组元素内容指定给变量,当所有元素都读完后,系统就会离开Foreach循环。
Foreach循环
例使用Foreach循环语句输出一个数组的所有元素值。
classProgram
{
staticvoidMain(string[]args)
{
intindex=1;
string[]myArray=newstring[6]
{"Pirlo","Ronaldo","Beckham","Kaka","Owen","Henry"};
foreach(stringarrinmyArray)
{
Console.WriteLine("第{0}个球员的名字是:
{1}",index++,arr);
}
Console.ReadLine();
}
}
循环语句while循环
While语句功能:
依据条件表达式的值有条件的执行循环体。
其格式如下:
while(条件表达式)
{循环体}
while语句是按下面方式执行的:
1、计算布尔表达式值
2、如果表达式值为真,程序执行嵌套语句。
当执行到嵌套语句结尾,将从新回到while语句的开头。
3、如果布尔表达式值为假,程序跳转到while语句的结尾。
例:
求1+2+3+……+100的值
main()
{inti,sum=0;i=1;
while(i<=100)
{sum=sum+i;
i++;
}
}
第4章C#高级程序设计
复杂的变量类型(枚举、结构、数组)
数组含义
具有相同数据类型的有序数据的集合
数组的声明:
类型说明符[]name;
数组元素访问:
name[N];
数组初始化;
1、指定数组的完整内容,如:
int[]a={0,2,4,6};
它是下列方式简写:
int[]a=newint[]{0,2,4,6};
2、指定数组大小后再初始化:
int[]i=newint[5];
i[0]=33;i[1]=22;
数组的三个特征:
有序,固定长度,相同数据类型
用foreach循环遍历数组元素:
staticvoidMain(string[]args)
{
string[]str=newstring[3]{"how","are","you"};
foreach(stringsinstr)
Console.Write(s);
Console.Read();
}
功能是每执行一次循环遍历数组中的一个元素,
数组
多维数组就是秩大于1的数组。
函数:
也叫方法
功能:
提高代码的可读性,
代码被拆分到不同的函数中,使程序的主体非常简短
为程序的重用提供可能
函数签名:
函数的签名由函数的参数、函数名及返回值类型组成
定义和使用函数
例题p88编写一个函数用来求解数组元素中的最大值
返回值了解
作用:
数据交换
和变量一样函数返回值也有数据类型
如:
intmax(intx,inty)
{
if(x>y)
returnx;
else
returny;
}
函数的返回值是整型
函数参数:
了解
必须在声明的时候指定参数名,以及参数的类型:
类型名函数名(类型名参数名,...)
{...
return变量;
}
如上例
参数用逗号分隔开
每个参数都可以当作一个变量使用。
函数的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c# 程序设计 复习资料