第3章 C#程序设计基础20120416_第1页
第3章 C#程序设计基础20120416_第2页
第3章 C#程序设计基础20120416_第3页
第3章 C#程序设计基础20120416_第4页
第3章 C#程序设计基础20120416_第5页
已阅读5页,还剩101页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章C#程序设计基础

3.1标识符3.2C#中数据类型3.3C#中的变量和常量3.4结构类型和枚举类型3.5C#运算符和表达式3.6C#中常用类和结构3.1标识符

C#的标识符名称必须遵守以下规则:

(1)所有的标识符只能由字母、数字和下划线这3类字符组成,且第一个字符必须为字母或下划线。(2)标识符中不能包含空格、标点符号、运算符等其他符号。(3)标识符严格区分大小写。(4)标识符不能与C#关键字名相同。(5)标识符不能与C#中的类库名相同。a12_c√1abc

3.2C#中数据类型C#中数据类型分类3.2.1值类型值类型的变量内含变量值本身,C#的值类型可以分为简单类型、结构类型和枚举类型。简单类型有:1.整数类型类型标识符说明占用位数取值范围示例sbyte带符号字节型8-128~127sbytei=10;byte无符号字节型80~255bytei=10;short带符号短整型16-32,768~32,767shorti=10;ushort无符号短整型160~65,535ushorti=10;int带符号整型32-2,147,483,648~2,147,483,647inti=10;uint无符号整型320~4,294,967,295uinti=10;uinti=10U;long带符号长整型64-9,223,372,036,854,775,808~9,223,372,036,854,775,807longi=10;longi=10L;ulong无符号长整型640~18,446,744,073,709,551,615ulongi=16;ulongi=16U;ulongi=16L;ulongi=16UL;2.实数类型类型标识符说明取值范围示例float单精度浮点数±1.5×10-45

~3.4×1038,精度为7位数floatf=1.23F;double双精度浮点数±5.0×10-324

~1.7×10308,精度为15到16位数doubled=1.23;decimal固定精度的浮点数1.0×10-28到~7.9×1028的之间,精度为28至29位有效数字decimald=1.23M;3字符类型单引号。

charc='H'; //字符Hcharc=‘\r’; //回车,转义字符

4.布尔类型布尔类型数据用于表示逻辑真和逻辑假,布尔类型的类型标识符是bool。3.2.2引用类型引用类型也称为参考类型,它存储地址。类似C中的指针。1.object类

object是C#中所有类型(包括所有的值类型和引用类型)的基类,object的变量可以赋予任何类型的值。

floatf=1.23;objectobj1; //定义obj1对象

obj1=f;objectobj2="China"; //定义obj2对象并赋初值2.string类

该类在System命名空间中,实现字符串的相关运算。常见操作有:

stringstr1="123"+"abc";//"+"运算符用于连接字符串

charc="HelloWorld!"[0];//"[]"运算符可以访问string中的单个字符,c=‘H'

注:字符串中也可含有转义字符,要将转义字符写出“\\”stringstr2=“E:\C#程序设计\1.cs”;//错误stringstr2=“E:\\C#程序设计\\1.cs”;//正确或者

stringstr3=@“E:\C#程序设计\1.cs;字符串的另一种表示形式,用@引起来,所有字符就是其本身的含义,不会解释为转义字符。

3.2.3类型转换C#允许使用两种转换的方式:隐式转换和显式转换。1.隐式转换隐式转换是系统默认的、不需要加以声明就可以进行的转换。一般从低类型到高类型转换。2.显式转换显式转换也叫强制类型转换,它需要明确地指定要转换的目标类型,一般从高类型到低类型。格式如下:

(类型标识符)表达式例如:

(int)1.23【例3.1】usingSystem;namespaceProj3_1{classProgram{staticvoidMain(string[]args){inti=65,i1,i2; doubled=66.3456,d1,d2; charc='A',c1,c2;

Console.WriteLine("i={0:d5},d={1:f},c={2}",i,d,c); i1=(int)d; //强制类型转换

d1=i;

//隐式类型转换

c1=(char)i;

//强制类型转换

Console.WriteLine("i1={0:d5},d1={1:f},c1={2}",i1,d1,c1); i2=c; //隐式类型转换

d2=(int)d; //强制类型转换,转换成整数后再隐式转为double类型

c2=(char)d; //强制类型转换

Console.WriteLine("i2={0:d5},d2={1:f},c2={2}",i2,d2,c2);}}}注意:强制类型转换包括3种形式:标准式(即用括号)(适用于同一大类型不同小类型之间的转换)使用Convert类使用Parse函数使用Convert转换

Convert是一个转换类,它提供静态方法实现类型的转换。见表3.16Convert转换适合于将一种基本数据类型转换为另一种基本数据类型,比如将数值型转为布尔型。例:inta;stringb=“123”;a=(int)b;//编译失败字符型和整型不属于一个大类,必须使用Convert类转换。必须写作:a=Convert.ToInt32(b);

使用Parse方法转换静态转换方法。功能:将数字字符串转换为它的等效的数值类型,比如int,double语法:新类型.Parse(“要转换的数字字符串”)

例如:inta=int.Parse("32");3.2.4装箱和拆箱1.装箱转换装箱:值类型的数据隐式地转换成一个引用类型。例如

inti=8;

objectobj=i;或

objectobj=(object)i;装箱的本质是将值类型的值复制给对象类型,所以,如果值类型改变,对象类型的值不变。例classProgram{staticvoidMain(string[]args){intx=123;objectobj1=x;x=x+100;Console.WriteLine("x={0}",x);Console.WriteLine("obj1={0}",obj1);}装箱装箱时,首先分配内存给obj1,然后把变量x的值复制一份给obj1。123xobj1123223x3.2.4装箱和拆箱2.拆箱转换拆箱:将一个对象类型的数据显式地转换成一个值类型数据。例如:

objectobj=2;

inti=(int)obj;拆箱转换需要(而且必须)执行显式转换,这是它与装箱转换的不同之处。拆箱的本质是:将对象类型的值复制给值类型

classProgram{staticvoidMain(string[]args){intx=123,y;objectobj1=x;

obj1=(int)obj1+100;y=(int)obj1;Console.WriteLine("x={0}",x);

Console.WriteLine("obj1={0}",obj1);Console.WriteLine("y={0}",y);}}//装箱//拆箱//拆箱3.3C#中的变量和常量3.3.1变量1.变量定义在C#程序里使用某个变量之前,必须要告诉编译器它是一个什么样的变量,因此要对变量进行定义。定义变量的方法如下:

[访问修饰符]数据类型变量名[=初始值];例如:

stringname="王华";

intage=20;也可以同时声明一个或多个给定类型的变量,例如:

inta=1,b=2,c=3;注意:C#规定,变量必须先定义再使用,变量使用之前必须被赋值。在定义时就赋值变量是个好习惯。2.值类型变量值类型的变量直接把值存放在变量里。简单变量都是值类型变量3.理解引用类型的变量引用类型的变量其内容是对象的地址而不是值。声明一个引用类型变量后,如果想该引用变量赋值要使用new操作符。例如:

MyClass

var;//声明一个引用变量var

var=newMyClass();//给该引用变量赋值,值为对象的地址namespaceConsoleApplication1{classProgram{

staticvoidMain(string[]args){intb=3;

var.Print(b);}}}classMyClass{publicvoidPrint(inta){Console.WriteLine(a);}}MyClassvar;//声明MyClass类型的变量varvar=newMyClass();例1C#中的引用类型有类、数组、接口和委托。namespaceli2__数组引用变量的实例{classProgram{staticvoidMain(string[]args){int[]a=newint[3]{1,2,3};for(inti=0;i<3;i++)Console.Write("{0}",a[i]);Console.WriteLine();int[]b=a;for(inti=0;i<3;i++)b[i]*=2;for(inti=0;i<3;i++)Console.Write("{0}",a[i]);}}}3.3.2常量1.直接常量以下都是直接常量:

100 //整型直接常量

1.23e5 //浮点型直接常量2.符号常量符号常量是通过关键字const声明的常量,包括常量的名称和它的值。常量声明的格式如下:

const数据类型常量名=初始值;

其中,“常量名”必须是C#的合法标识符,在程序中通过常量名来访问该常量。“类型标识符”指示了所定义的常量的数据类型,而“初始值”是所定义的常量的值。例如:

constdoublePI=3.14159265;例3:符号常量的使用分别单击按钮,弹出输入框,用来输入半径和高,单击“结果”按钮通过消息框显示结果。输入框用来供用户通过键盘输入内容,C#通过Inputbox函数来实现。Inputbox的语法:注意:Inputbox所有参数均不可省略。Inputbox(提示信息,标题,缺省值,左顶点x坐标,左顶点y坐标)C#的输入框和消息框提示标题缺省例:生成如下输入框Inputbox(“请输入一个数”,输入框,100,-1,-1)使用前提:先在解决方案资源管理器中添加引用弹出Inputbox,用Interaction.Inputbox(参数)2、然后在代码中引入命名空间:usingMicrosoft.VisualBasic;消息框的作用是输出信息。C#使用MessageBox函数来建立消息框。语法如下:MessageBox.Show(text,title,buttons,icon,defaultbutton)注意:只有第一个参数是必须的,其他均可省略。图标标题提示信息命令按钮MessageBox.Show("注意:…","错误提示",MessageBoxButtons.AbortRetryIgnore,MessageBoxIcon.Warning);namespaceinputbox_messabox{publicpartialclassForm1:Form{publicForm1(){InitializeComponent();}

floatradius,high,volume;constfloatPI=3.14F;privatevoidbutton1_Click(objectsender,EventArgse){

radius=float.Parse(Interaction.InputBox("输入圆锥体的底面半径:","输入","",-1,-1));

}privatevoidbutton2_Click(objectsender,EventArgse){high=float.Parse(Interaction.InputBox("输入高:","输入","",-1,-1));}privatevoidbutton3_Click(objectsender,EventArgse){

volume=(float)(1.0/3.0*PI*radius*radius*high);MessageBox.Show("圆锥体的体积为:"+volume.ToString(),"输出结果",MessageBoxButtons.OK,MessageBoxIcon.Information);}}}

messagebox.show()方法能够返回值,该值取决于用户单击了什么按钮。比如,如果单击“是”,则返回值为“yes”,单击“否”,则返回值为“no”等,返回值是dialogresult

类型的变量。例:privatevoidbutton1_Click(objectsender,EventArgse){DialogResultdr=MessageBox.Show("是否查看窗体?","标题1",MessageBoxButtons.YesNoCancel,MessageBoxIcon.Question);if(dr==DialogResult.Yes){Form2frm=newForm2();frm.Show();}}回顾上次课装箱和拆箱引用类型变量符号常量Inputbox

messagbox的使用3.4结构类型和枚举类型3.4.1结构类型1.结构类型的声明值类型;把一系列相关的变量组织成一个单一实体的类型称为结构类型。每个变量称为结构的成员。声明结构类型的一般格式如下:

struct

结构类型名称

{ [字段访问修饰符]数据类型字段1; [字段访问修饰符]数据类型字段2; ... [字段访问修饰符]数据类型字段n;};注意:定义成员时,不能赋初始值!例如,以下声明一个具有姓名和年龄的结构体类型Student:structStudent //声明结构类型Student{publicint

xh; //学号

publicstringxm; //姓名

publicstringxb; //性别

publicint

nl; //年龄

publicstringbh; //班号};2.结构类型变量的定义声明一个结构类型后,可以定义该结构类型的变量(简称为结构变量)。定义结构变量的一般格式如下:

<结构名><结构变量名>[=new<结构类型名>([<实参列表>])]

例:声明结构类型Student后,定义它的两个变量如下:

Students1,s2;3.结构变量的使用1)访问结构变量字段访问结构变量字段的一般格式如下:

结构变量名.字段名例如,s1.xh表示结构变量s1的学号,s2.xm表示结构变量s2的姓名。结构体变量的字段可以在程序中单独使用,与普通变量完全相同。2)结构变量的赋值结构变量的赋值分两种情况:

结构变量的字段赋值:使用方法与普通变量相同。

结构变量之间赋值:要求赋值的两个结构变量必须类型相同。例如:

s1=s2;这样s2的所有字段值赋给s1的对应字段。【例3.2】设计一个控制台程序说明结构类型的应用。usingSystem;namespaceProj3_2{classProgram{structStudent//结构类型声明应放在Main函数的外面

{ publicint

xh; //学号

publicstringxm;//姓名

publicstringxb; //性别

publicint

nl; //年龄

publicstringbh; //班号

}

staticvoidMain(string[]args){Students1,s2; //定义两个结构类型变量

s1.xh=101; s1.xm="李明"; s1.xb="男"; s1.nl=20; s1.bh="07001";

Console.WriteLine("学号:{0},姓名:{1},性别:{2},年龄:{3},

班号:{4}",s1.xh,s1.xm,s1.xb,s1.nl,s1.bh); s2=s1; //将结构变量s1赋给s2 s2.xh=108; s2.xm="王华";

Console.WriteLine("学号:{0},姓名:{1},性别:{2},年龄:{3},

班号:{4}",s2.xh,s2.xm,s2.xb,s2.nl,s2.bh);}}}什么时候用结构类型结构类型常常用来表示点、颜色等轻量对象。如果只是处理数据,且数据量不大,选择结构。结构应用举例定义一个表示点的坐标结构Point,其中包含表示横坐标和纵坐标的字段x和y。然后建立应用程序,输入平面上两个点的坐标值,再求这两个点之间的距离。structPoint{

publicdoublex;

publicdoubley; }

privatevoidbtnResult_Click(objectsender,EventArgse){doublex1,x2,y1,y2;doubleresult;x1=double.Parse(txtX1.Text);x2=double.Parse(txtX2.Text);y1=double.Parse(txtY1.Text);y2=double.Parse(txtY2.Text);

point1.x=x1;point1.y=y1;point2.x=x2;point2.y=y2;result=Math.Sqrt((point1.x-point2.x)*(point1.x-point2.x)+(point1.y-point2.y)*(point1.y-point2.y));txtResult.Text=result.ToString();}Pointpoint1,point2;结构中除了含有变量外,也可以含有构造函数、常量、方法、属性、事件等。例:struct

Rect{Publicdoublewidth; Publicdoubleheight; PublicRect(double

x,doubley)//构造函数用来初始化宽和高;

{ Width=x; Height=y; } Publicdoublearea()//方法用来计算面积

{ Returnwidth*height }}结构总结结构的特点:1、值类型2、向方法传递一个结构类型的变量时,按数值传递3、结构的实例化可以不用new运算符。在结构体中含有构造函数时,必须用new运算符。4、结构中可以声明构造函数,但它们必须含有参数。5、在结构中初始化成员是错误的。3.4.2枚举类型枚举类型和结构类型一样,也是一种自定义值类型。枚举是指程序中某个变量具有一组确定的值,通过“枚举”可以将其值一一列出来。使用枚举的好处在于:可以用描述性的名称表示值,增加程序的可读性。1.枚举类型的声明enum

枚举名[:<基础类型>]

{枚举成员名[=枚举值],枚举成员名[=枚举值],……}枚举值列表基础类型表示枚举成员值的数据类型,默认为int型,枚举的声明必须要定义在主函数外面。例如,声明一个名称为color的表示颜色的枚举类型:

enumColor:byte{ Red=0,//red是枚举成员名,0是该成员对应的枚举值

Green=1, Blue=2, White=3, Black=4}注意:任意两个枚举成员不能具有相同的名称。每个枚举成员均具有相关联的常数值,该值的类型就是枚举的基础类型。2.枚举成员的元素关联问题

C#规定每个枚举成员均有1个关联值,允许多个枚举成员有相同的值,允许无顺序地定义成员值。1.元素的默认关联:

C#规定第1个枚举成员的值取0,它后面的每一个枚举成员的值按加1递增。

2.元素的指定关联为某个枚举成员赋值后,其后的枚举成员自动在前一个枚举成员值之上加1。

enumColor{Red=0,Green,Blue=3,White,Black=1};则这些枚举成员的值分别为0、1、3、4、1。3.枚举类型变量的定义定义枚举变量的一般格式如下:

<枚举类型><枚举变量>

例:

Colorc1,c2;1)枚举变量的赋值枚举变量赋值的语法格式如下:枚举变量=枚举名.枚举成员名称例如:

c1=Color.Red;2)枚举变量的访问枚举变量像普通变量一样直接访问。枚举类型变量经常是和Switch语句或if语句搭配使用的。staticvoidMain(string[]args){colorc=color.red;switch(c){casecolor.red:Console.WriteLine("red={0}",(int)c);

break;

casecolor.green:Console.WriteLine("green={0}",(int)c);break;

casecolor.blue:Console.WriteLine("blue={0}",(int)c);

break;

}}enumcolor{red,green,blue}例:思考:将case后使用关连值?基础类型与枚举类型的转换:必须显示转换staticvoidMain(string[]args){colorc=color.red;switch(c){casecolor.red:Console.WriteLine("red={0}",(int)c);

break;

casecolor.green:Console.WriteLine("green={0}",(int)c);break;

casecolor.blue:Console.WriteLine("blue={0}",(int)c);

break;

}}(color)1(color)0(color)2例:定义一个枚举来描述一周中的7天,每个常量代表一周中的一天。设计程序,由键盘输入一个1-7的数字表示周一到周日,然后利用枚举判断该天是工作日还是休息日。enumweekdays{saturday,sunday=0,monday,tuesday,wednesday,thursday,friday}privatevoidbutton1_Click(objectsender,EventArgse){intdayno;

weekdaysmyday=0;switch(dayno){case1:myday=

break;case2:myday=

break;……..}if(myday==0){textBox2.Text=“该天为周末";}else{textBox2.Text="该天为工作日";}}dayno=int.Parse(textBox1.Text);weekdays.monday;weekdays.tuesday;

枚举的典型应用C#中很多对象都是枚举类型的。比如:dialogresult,messageboxbuttonSystem.drawing.color3.5C#运算符和表达式3.5.1算术运算符符号意义示例+加法运算a+b−减法/取负运算a−b*乘法运算a*b/除法运算a/b%取余数a%b++累加a++−−递减a−

−注意:“/”的两个操作数都是整型数据类型时,结果也是整型。验证实例

privatevoidForm1_Click(objectsender,EventArgse){inta,b,c;a=6;b=3;c=a/b;label1.Text=Convert.ToString(c.GetType());}3.5.2字符串运算符

+

strings="Hello";s=s+",World.";

Console.WriteLine(s);//输出:Hello,World.3.5.3赋值运算符赋值运算符(=)用于改变变量的值,它先求出右侧表达式的结果,然后再将结果赋给左侧的变量。符号意义示例+=加赋值a+=b等价于a=a+b-=减赋值a-=b等价于a=a-b*=乘赋值a*=b等价于a=a*b/=除赋值a/=b等价于a=a/b%=取模赋值a%=b等价于a=a%b<<=左移赋值a<<=b等价于a=a<<b>>=右移赋值a>>=b等价于a=a>>b&=与赋值a&=b等价于a=a&b^=异或赋值a^=b等价于a=a^b|=或赋值a|=b等价于a=a|b3.5.4关系运算符符号意义示例<小于2<3为true<=小于等于2<=3为true>大于2>3为false>=大于等于2>=3为false==等于2==3为false!=不等于2!=3为true3.5.5逻辑运算符符号意义示例!逻辑非!(2<3)为false&&逻辑与(3<5)&&(5>4)为true||逻辑或(3<5)||(5>4)为true3.5.6位运算符符号意义示例~按位求反!2<<左移8<<2>>右移8>>2&按位与8&5^按位异或8^5|按位或8|5注意:位运算的运算对象必须为整数,其结果为int例3.4左移运算:操作数按位左移,最高位移出,最低位补0;左移n位相当于乘以2n右移运算:操作数按位右移,最低位移出,若操作数为正数或0,则最高位补0;若操作数为负数,则最高位补1。右移n位相当于除以2n3.5.7条件运算符条件运算符是一个三元运算符。使用格式如下:

表达式1?表达式2:表达式3

例如,以下表达式返回a和b中的最大值:

max=a>b?a:b其他运算符is;sizeof;

typeof:作用同GetType()方法,都是求参数的数据类型。

区别在于:

1.typeof是运算符,而gettype是方法;

2.typeof的参数只能是类名,不可以是变量名;而GetType可以求得变量的数据类型,语法为:变量名.GetType()3.5.9运算符的优先级

C#根据运算符的优先级确定表达式的求值顺序:优先级高的运算先做,优先级低的操作后做,相同优先级的操作从左到右依次做,同时用小括号控制运算顺序,任何在小括号内的运算最优先进行。例:计算表达式11%4*(3+2)+3/2表3.12163.6C#中常用类和结构C#中一切都是对象。3.6.1String类属性说明Chars获取此字符串中位于指定字符位置的字符。Length获取此字符串中的字符数。

string类型是.NETFramework中的String类的别名。string类型定义了相等运算符(==和!=)用于比较两个string对象,另外,+运算符用于连接字符串,[]运算符可以用来访问string中的各个字符。方法说明Compare静态方法。比较两个指定的String对象CompareTo

非静态方法。将此字符串与指定的对象或String进行比较,并返回两者相对值的指示Concat

静态方法。连接String的一个或多个字符串Contains非静态方法。返回一个值,该值指示指定的String对象是否出现在此字符串中Equals非静态方法。确定两个String对象是否具有相同的值Format静态方法。将指定的String中的每个格式项替换为相应对象的值的文本等效项IndexOf

非静态方法。返回String或一个或多个字符在此字符串中的第一个匹配项的索引Insert非静态方法。在该String中的指定索引位置插入一个指定的StringRemove非静态方法。从该String中删除指定个数的字符Replace非静态方法。将该String中的指定String的所有匹配项替换为其他指定的StringSplit非静态方法。返回包含该String中的子字符串(由指定Char或String数组的元素分隔)的String数组Substring非静态方法。从此字符串中检索子字符串ToLower

非静态方法。返回该String转换为小写形式的副本ToUpper

非静态方法。返回该String转换为大写形式的副本Trim非静态方法。从此字符串的开始位置和末尾移除一组指定字符的所有匹配项Length属性:求得字符串的长度Stringstr="中国abcde";intlen=str.Length;Console.WriteLine(len)7一个汉字的长度为1Compare功能:比较2个字符串是否相等。

特点:静态方法,通过类名调用。返回值:逐个按ascii码比较大小,若两串相等返回值为0;小于返回值为-1;大于返回值为1语法:String.Compare(str1,str2)或者String.Compare(str1,str2,true)

比较时忽略大小写String.Compare(str1,str2,false)

比较时大小写敏感CompareTo非静态方法,需要string类的对象调用str1.CompareTo(str2)含义同CompareIndexOf功能:求子串位置特点:非静态方法语法为:母串.IndexOf(子串,[搜索起始序号][,搜索的个数])注意:子串可以为单个字符或者多个字符若子串不存在则返回-1;存在则返回其在母串的起始位置的索引值privatevoidbutton1_Click(objectsender,EventArgse){stringstr1,str2;str1="dbc";str2="c";label1.Text=Convert.ToString(str1.IndexOf(str2));}}Format格式化字符串静态方法语法为:String.Format(指定格式,待格式化的字符串)

例:stringstr1,str2;str1="C#";str2="经典!";label3.Text=String.Format("{0},{1}!!!",str1,str2);Split分割字符串非静态方法语法为:待分割的串.Split(分隔符)例:

privatevoidbutton1_Click(objectsender,EventArgse){stringstr1;string[]str2=newstring[10];charc;c=',';str1="abc,d,1,45";str2=str1.Split(c);label1.Text=str2[0];}substring对字符串从指定索引处取指定个数的字符串。非静态方法语法:str1.Substring(指定索引,个数);

privatevoidbutton1_Click(objectsender,EventArgse){stringstr1="abcd";label1.Text=str1.Substring(1,3);}共同阅读课本【例3.7】usingSystem;namespaceProj3_6{classProgram{staticvoidMain(string[]args){ Stringmstr,sstr;

Console.Write("输入主串:");

mstr=Console.ReadLine();

Console.Write("输入子串:");

sstr=Console.ReadLine();

Console.WriteLine("主串长度={0},子串长度={1}",

mstr.Length,sstr.Length); if(String.Compare(mstr,sstr)!=0)

//使用静态方法

Console.WriteLine("位置:{0}",mstr.IndexOf(sstr)); else

Console.WriteLine("两个字符串相同");}}}例:实现查找最长串功能privatevoidbutton1_Click(objectsender,EventArgse){stringstr1=textBox1.Text;string[]str2=newstring[10];charsp='';str2=intmaxw=intj=0;for(inti=0;i<=str2.GetUpperBound(0);i++){listBox1.Items.Add(str2[i]);if(maxw<str2[i].Length){maxw=str2[i].Length;j=i;}}textBox2.Text=str2[j];}str1.Split(sp);str2[0].Length;回顾上次课用户自定义值类型:结构和枚举String类常用的属性和方法结构总结结构的特点:1、值类型2、结构的实例化(即定义结构类型的变量)可以不用new运算符。在结构体中含有构造函数时,构造函数必须含有参数,且实例化时必须用new运算符。3、在结构中不能给变量成员赋初始值。4、结构中除了变量外,还可以声明构造函数、方法等对象。struct

Rect{Publicdoublewidth; Publicdoubleheight; PublicRect(double

x,doubley)//构造函数用来初始化宽和高;

{ Width=x; Height=y; } Publicdoublearea()//方法用来计算面积

{ Returnwidth*height }}privatevoidbutton1_Click(objectsender,EventArgse){doubleh,wid;

h=Convert.ToInt16(textBox1.Text);wid=Convert.ToInt16(textBox2.Text);Rectrec1;

rec1=newRect(len,wid);textBox3.Text=Convert.ToString(rec1.Area());}枚举总结:枚举的实质是符号常量的集合,每个符号常量关联一个值(默认是int型的)使用枚举的好处在于提高程序的可读性枚举通常和分支语句结合使用在变量的值可以预知的情况下,可以去定义枚举类型。String类属性:length属性使用的语法为:对象名.length方法:Compare:静态方法,String.Compare(str1,str2)Compareto:非静态方法,str1.CompareTo(str2)Indexof:非静态方法,str1.Indexof(str2)Split:非静态方法,str1.Split(separator)Substring:非静态方法,str1.SubString(index,n)阅读下列代码给出结果

privatevoidbutton4_Click(objectsender,EventArgse){stringstr20;str20="中华人民共和国中国矿业大学";label3.Text=Convert.ToString(str20.IndexOf("深圳"));label4.Text=Convert.ToString(str20.IndexOf("中国"));label5.Text=Convert.ToString(str20.IndexOf("国",9));label6.Text=Convert.ToString(str20.IndexOf("国",5,4));写出每个按钮对象的click事件过程3.6.2

Math类

Math类位于System命名空间中,它包含了实现C#中常用算术运算功能的方法,这些方法都是静态方法,可通过“Math

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论