




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Web Service Web Service 编程编程 -C#.NET-C#.NET 老师:I94Self E_mail: QQ:200762716 第二章第二章 C#C#基本语法基本语法 编译编译C#C#语言语言 : 请参见请参见P32-39P32-39,P33P33表表2-12-1 第二章第二章 C#C#基本语法基本语法 数据类型介绍数据类型介绍 : 值类型:值类型: 值类型存储一个实际的值。值类型存储一个实际的值。 引用类型:引用类型存储一个对象(对象是一引用类型:引用类型存储一个对象(对象是一 个类的实例)的地址。个类的实例)的地址。 指针类型:指针类型是用来操作内存的,这是指针类型:指针类型是用来操作内存的,这是 一种不安全的方式。实际上,指针就是一种特殊一种不安全的方式。实际上,指针就是一种特殊 的引用类型。的引用类型。 第二章第二章 C#C#基本语法基本语法 C#C#中的内置数据类型(简单类型)中的内置数据类型(简单类型): : 整型整型 C#C#类型 类型 .NET.NET类型 类型 所占字节数所占字节数 值范围 值范围 sbyte SBytesbyte SByte 1 -128127 1 -128127(有符号)(有符号) bytebyte Byte 1 0255 Byte 1 0255(无符号)(无符号) short Int16 2 -32,76832,768short Int16 2 -32,76832,768(有符号(有符号 ) ushort UInt16ushort UInt16 2 065,535 2 065,535(无符号)(无符号) intint Int32 4 -2,147,483,647 Int32 4 -2,147,483,647 2,147,483,647 2,147,483,647(有符号)(有符号) uintuint UInt32 4 04,294,967,295 UInt32 4 04,294,967,295(无符号)(无符号) longlong Int64 Int64 8 -9,223,372,036,854,775,808 8 -9,223,372,036,854,775,808 9,223,372,036,854,775,807 9,223,372,036,854,775,807(有符号(有符号 ) ulongulong UInt64 UInt64 8 18,446,744,073,709,551,615 8 18,446,744,073,709,551,615 (无符号)(无符号) 第二章第二章 C#C#基本语法基本语法 、浮点类型、浮点类型 C#C#类型类型 .NET.NET类型 类型 所占字节数 所占字节数 取值范围取值范围 float Single 4 float Single 4 近似近似1.510-451.510-45 近似近似3.410383.41038,有七位有,有七位有 效数字。实现效数字。实现IEEE 754IEEE 754标准标准 doubledouble Double Double 8 8 近似近似510-324510-324 近似近似1.7103081.710308,1515到到1616 位有效数字。实现位有效数字。实现IEEE 754IEEE 754标准标准 decimaldecimal Decimal Decimal 12 12 1.010-28 1.010-28近似近似 7.910287.91028,2828位有效数字位有效数字 第二章第二章 C#C#基本语法基本语法 字符型字符型 C#C#类型 类型 .NET.NET类型 所占字节数 值范围类型 所占字节数 值范围 charchar Char Char 2 21616位位UnicodeUnicode字符字符 转义字符转义字符 转义字符 描述转义字符 描述 转义字符 描述 转义字符 描述 单引号单引号 f f 换页换页 ” ”双引号双引号 nn 换行换行 反斜线反斜线 r r 回车回车 00空空 t t 水平水平tabtab aa报警报警 vv 垂直垂直tabtab bb空格空格 第二章第二章 C#C#基本语法基本语法 结构类型结构类型 结构结构是用户是用户自定义自定义的数据类型。结构类型是指把各种的数据类型。结构类型是指把各种 不同类型数据信息组合在一起形成的组合类型。不同类型数据信息组合在一起形成的组合类型。 1、结构的声明 结构类型也是先声明后使用。 声明结构类型时要使用struct关键字,声明结构类型的一般 语法格式如下: struct 标识符 /结构成员定义 例:定义一个表示矩形的结构。 struct Rectangle /定义名为Rectangle的结构 public double 长; public double 宽; public代表这个成员是公有成员,可以被外界访问。 结构体中也可以放方法成员,如可以在结构体中计算面积。 例: struct Rectangle /定义名为Student的结构 public double 长; public double 宽; public void 面积( ) Console.WriteLine(“面积=0”,长*宽); 2、 结构成员的访问 结构成员可分为两类,一是实例成员,一是静态成员。 若成员名前有static关键字,则该成员为静态成员,否则为实 例成员。静态成员通过结构名来访问,格式: 结构名.静态成员名 实例成员的访问是通过创建结构类型的变量来访问结构的实例 成员。格式: 结构名 标识符; 实例成员访问格式为: 结构变量名.实例成员名 练习: 1. 声明结构类型的关键字为( ) A class B double C struct D int D 枚举类型是用户自定义的数据类型,是一种允许 用符号代表数据的值类型。 枚举是指程序中某个变量具有一组确定的值,通 过“枚举”可以将其值一一列出来。 例如:将一个星期的7天分别用符号Monday、 Tuesday、Wednesday、Thursday、Friday、 Saturday和Sunday来表示。 枚举 1. 枚举类型的定义 枚举类型是一种用户自己定义的由一组指定常量集合组 成的独特类型。 格式: enum 枚举名 枚举成员表; 例: enum WeekDay Sun, Mon, Tue, Wed, Thu, Fri, Sat; 注意:两个枚举成员名不能完全相同。 2. 枚举成员的赋值 在定义的枚举类型中,每一个枚举成员都有一个相对 应的整数值,对于枚举成员对应的整数值,默认情况下C# 规定第1个枚举成员的值取0,它后面的每一个枚举成员的 值按加上1递增。 例: enum WeekDay Sun, Mon, Tue, Wed, Thu, Fri, Sat; 中,其 枚举成员Sun、Mon、Tue、Wed、Thu、Fri和Sat在执行 程序时,分别被赋予整数值0、1、2、3、4、5和6。 例:输出枚举成员对应的整数值。 using System; enum color yellow, brown, blue, black, purple class EnumDemo static void Main( ) Console.WriteLine(“yellow=0”, color.yellow); Console.WriteLine(“yellow=0”, (int)color.yellow); Console.WriteLine(“brown=0”, (int)color.brown); Console.WriteLine(“blue=0”, (int)color.blue); Console.WriteLine(“black=0”, (int)color.black); Console.WriteLine(“purple=0”, (int)color.purple); 注意:枚举成员的值在不经过显式转换前,是不会变换成整数值的。 (1)为第1个枚举成员赋值 在定义枚举类型时,为第1个枚举成员赋值,它后面的每一个枚举 成员的值按加1递增。 例: using System; enum color yellow=-1, brown, blue, black, purple class EnumDemo static void Main( ) Console.WriteLine(“yellow=0”, color.yellow); Console.WriteLine(“yellow=0”, (int)color.yellow); Console.WriteLine(“brown=0”, (int)color.brown); Console.WriteLine(“blue=0”, (int)color.blue); Console.WriteLine(“black=0”, (int)color.black); Console.WriteLine(“purple=0”, (int)color.purple); (2)为某一个枚举成员赋值 如果在定义枚举类型时,直接为某个枚举成员赋值,则其他 枚举成员依次取值,如: enum color yellow, brown, blue, black=6, purple; 例: using System; enum color yellow, brown, blue, black=6, purple class EnumDemo static void Main( ) Console.WriteLine(“yellow=0”, color.yellow); Console.WriteLine(“yellow=0”, (int)color.yellow); Console.WriteLine(“brown=0”, (int)color.brown); Console.WriteLine(“blue=0”, (int)color.blue); Console.WriteLine(“black=0”, (int)color.black); Console.WriteLine(“purple=0”, (int)color.purple); (3)为多个枚举成员赋值 在定义枚举类型时,还可以为多个枚举成员赋值。 例如: enum color yellow, brown=3, blue, black=-3, purple; 例:输出枚举成员对应的整数值。 using System; enum color yellow, brown=3, blue, black=-3, purple class EnumDemo static void Main( ) Console.WriteLine(“yellow=0”, color.yellow); Console.WriteLine(“yellow=0”, (int)color.yellow); Console.WriteLine(“brown=0”, (int)color.brown); Console.WriteLine(“blue=0”, (int)color.blue); Console.WriteLine(“black=0”, (int)color.black); Console.WriteLine(“purple=0”, (int)color.purple); (4)为多个枚举成员赋同样的值 在定义枚举类型时,可以让多个枚举成员具有同 样的整数值,如: enum color yellow, brown=3, blue, black= blue, purple; /这里black的整数值就为4 例:输出枚举成员对应的整数值。 using System; class EnumDemo enum color yellow, brown=3, blue, black= blue, purple static void Main( ) Console.WriteLine(“yellow=0”, color.yellow); Console.WriteLine(“yellow=0”, (int)color.yellow); Console.WriteLine(“brown=0”, (int)color.brown); Console.WriteLine(“blue=0”, (int)color.blue); Console.WriteLine(“black=0”, (int)color.black); Console.WriteLine(“purple=0”, (int)color.purple); 3. 枚举成员的访问 可以通过枚举型变量和枚举名两种方式来访问枚举成员。 (1)通过变量访问枚举成员 先要声明一个枚举型变量,形式如下: 枚举类型名 变量名; 例: enum WeekDay Sun, Mon, Tue, Wed, Thu, Fri, Sat ; Weekday wd1; /声明一个枚举型变量wd1 wd1=WeekDay.Sun; /给枚举型变量wd1赋值 例:声明一个枚举类型,通过枚举型变量访问枚举成员。 enum Color Red,Green=10,Blue class Test static void Main() Console.Write(“请输入c的值:“); int c=int.Parse(Console.ReadLine(); /输入10 Color b=(Color)c; Console.WriteLine(b); switch(b) case Color.Red: Console.WriteLine(“Red=“+(int)b); break; case Color.Green: Console.WriteLine(“Green=“+(int)b); break; case Color.Blue: Console.WriteLine(“Blue=“+(int)b); break; default: Console.WriteLine(“Invalid color“); break; (2)通过枚举名访问枚举成员 通过枚举名访问枚举成员的一般形式: 枚举名.枚举成员; 练习:已知 enum Course Math, English, Computer, History, Chemistry=0, Philology, Philosophy Course cc; 则下列语句错误的是( ) Aint a=(int)Course.English; Bcc=Course.English+2; Ccc=5; Dbool b=Course.Math=Course.Chemistry; 引用类型 1. object类 object类是系统提供的基类型,是所有类型的基类,C#中所 有的类型都直接或间接派生于对象类型。 对于任一个object变量,均可以赋以任何类型的值。 double d=3.14; object obj1; obj1=d; obj1=k; 对于object类型的变量,声明必须使用object关键字。 类类型类类型 一个类类型包含数据成员,函数成员一个类类型包含数据成员,函数成员 ,嵌套类型,数据成员是常量,静态字段,嵌套类型,数据成员是常量,静态字段 和事件。函数成员包括方法,属性,索引和事件。函数成员包括方法,属性,索引 ,操作浮,构造函数,析构函数。,操作浮,构造函数,析构函数。 C# C# 只允只允 许单继承,但是可以派生自多个接口许单继承,但是可以派生自多个接口 接口 一个接口定义了一个协议。一个实现了某个接口的类 或结构必须符合它的协议。一个接口可以从多个基本接口 继承,而一个类或结构也可以实现多个接口。 接口可以包含方法、属性和索引等(即在接口中只能包 含方法而不能包含变量)。接口自己不为它所定义的成员 提供具体实现。接口只是指定类中必须被实现的成员。 格式:接口修饰符 interface 接口名 :基接口名 接口的成员; ; 代表代表 ( (委托) ) 委托,顾名思义,就是中间代理人的意思。通俗地说 ,委托是一个可以引用方法的对象,即是说委托可以调用 它所指向的方法。 C#中委托的具体的步骤是: (1) 声明一个委托,其参数形式一定要和想要包含 的方法的参数形式一致。 (2) 定义所有你要定义的方法,其参数形式和第一 步中声明的委托对象的参数形式必须相同。 (3) 创建委托对象并将所希望的方法包含在该委托 对象中。 (4) 通过委托对象调用包含在其中的各个方法。 步骤1: 声明一个委托 格式: 修饰符 delegate 返回类型 委托名(参数列表); 例: public delegate void MyDelegate1(string input); public delegate double MyDelegate2( ); 声明一个委托的对象, 与声明一个普通类对象的方式一样: 委托名 委托对象名; 例: MyDelegate1 a; MyDelegate2 b; 步骤2:定义方法,其参数形式和步骤1中声明的委托对象的必须相同 class MyClass1 public void dMethod1(string input) Console.WriteLine(“Method1传递的参数是 0“,input); public void dMethod2(string input) Console.WriteLine( Method1传递的参数是 0“,input); 步骤3:创建一个委托对象并将上面的方法包含其中 例: MyClass1 c2=new MyClass1(); MyDelegate1 d1; d1 = new MyDelegate1(c2.dMethod1); MyDelegate1 d2 = new MyDelegate1(c2.dMethod2); 步骤4:通过委托对象调用包含在其中的方法 例: d1(“abc“); d2(“123“); 下面这个例子就是将上面的4个步骤合在一起: using System; public delegate void MyDelegate1(string input); class MyClass1 public void dMethod1(string input) Console.WriteLine(“dMethod1传递的参数是 0“,input); public void dMethod2(string input) Console.WriteLine( “dMethod2传递的参数是 0“,input); class Driver static void Main() MyClass1 c2=new MyClass1();? MyDelegate1 d1 = new MyDelegate1(c2.dMethod1);? MyDelegate1 d2 = new MyDelegate1(c2.dMethod2);? d1(“abc“); d2(“123“); 运行结果如下: 字符串类型字符串类型 String x=“123”String x=“123” String y=“123”;String y=“123”; x=y?x=y? x “123”111222 111222 y “123”111228 111228 数组数组 string etcStr=“A“,“B“,“C“; string etcStr=“A“,“B“,“C“; etcStr0=“A“;etcStr1=“B“;etcStr2=“C“;etcStr0=“A“;etcStr1=“B“;etcStr2=“C“; int, arr=0,1,2,3,4,5 int, arr=0,1,2,3,4,5 arr0,0=0;arr0,1=1; arr0,0=0;arr0,1=1; arr1,0=2;arr1,1=3; arr1,0=2;arr1,1=3; arr2,0=4;arr2,2=5; arr2,0=4;arr2,2=5; int nVar=5; int nVar=5; int arrToo=new intnVar; int arrToo=new intnVar; 也可以!也可以! 装箱和拆箱 装箱转换 装箱转换是指将一个值类型的数据隐 式地转换成一个对象类型(object)的数据 。 例如:下面的两条语句就执行了装箱转换 : int i=518; object obj=i; 例:在程序中执行装箱转换。 using System; class BoxingDemo static void Main( ) Console.WriteLine(“执行装箱转换:“); int k=200; object obj=k; k=300; Console.WriteLine(“obj=0“,obj); Console.WriteLine(“k=0“, k); 2拆箱转换 和装箱相反,拆箱转换是指将一个对象类 型的数据显式地转换成一个值类型数据。 例如: object obj=228; int k=(int)obj; 例:在程序中使用拆箱转换。 using System class UnboxingDemo static void Main( ) int k=228; object obj=k; /装箱转换 int j=(int ) obj; /拆箱转换 Console.WriteLine(“k=0tobj=1tj=2“, k, obj, j); 该程序执行后,输出结果如下: k=228 obj=228 j=228 常量和变量常量和变量 变量变量 和和C/C+ C/C+ 不同的是可以用不同的是可以用 来说明一来说明一 个关键字也是一个变量!个关键字也是一个变量!C# C# 没有全局变量没有全局变量 ! 常量常量 可以是然后一种值类型和引用类型!可以是然后一种值类型和引用类型! 选择结构 选择结构的概念 选择结构,是一种常用的主要基本结构 ,是计算机根据所给定选择条件为真与否 ,而决定从各实际可能的不同操作分支中 执行某一分支的相应操作。 条件语句 1if语句 语法形式: if (表达式) 语句; 说明:如果表达式的值为true,则执行后面if语句所控制的语 句;如果表达式的值为false,则不执行if语句控制的语句,而 直接跳转执行后面的语句。 注意:如果if语句块中只有一条语句,则大括号“ ”可以省 略。 编程:计算下面公式中的b的值。 2a+1 (a 100) b= a (a 100) using System; class value static void Main( ) Console.Write(“请输入a的值:“); int a=int.Parse(Console.ReadLine(); int b=a; if(a=0.5) b=(int)a+1; else b=(int)a; Console.WriteLine(“0进行四舍五入后的值为:1 “,a,b); 在ifelse语句中可以嵌套使用多层ifelse语句,如: if (表达式1) if(表达式2) if(表达式3) 语句1; else 语句2; else 语句3; else 语句4; 在使用这种结构时,要注意else和if的配对关系,其原则是 :从第1个else开始,一个else总和它上面离它最近的可配对的 if配对。 例: int a=int.Parse(Console.ReadLine( ); if (a0) if (a100) a=a-50; else a=a+10; /这个else与if (a100)相配 else a=-a; / 这个else与if (a0)相配 Console.WriteLine(“a=”,a); 分支语句 格式:switch(表达式) case 常量表达式1: 语句1; break; case 常量表达式2: 语句2; break; default: 语句n; break; 注意: C#要求每个case后使用break语句或跳转语句goto。所有 常量表达式的值不能相同。 例: using System; class Demo public static void Main() Console.Write(“enter i=“); int i=int.Parse(Console.ReadLine(); switch(i) case 1: case 2: case 3: Console.WriteLine(“i is 1,2 or 3.“); break; case 4: Console.WriteLine(“ i is 4. “); break; 注意:在C#中,两个或更多的case语句可以共用同一程序代码: 循环结构 循环是指在指定的条件下多次重复执行一组语句。被重复 执行的一组语句称为循环体。 采用循环结构可以解决一些按一定规则重复执行的问题。 例如,统计一个班几十名学生,甚至全校几千名学生的学期成 绩,如求平均分、不及格人数等 4.4.1 循环结构的概念 循环结构按其循环体是否嵌套从属的子循环结构,可分为 单循环结构和多重循环结构。 while语句和dowhile语句 1while语句 语法格式: while (条件表达式) 循环体 using System; class Sumw static void Main( ) int n=1; while (n6) Console.WriteLine(“n=0”, n); n+; 例:写出下列程序的运行结果。 结果 : 2do-while语句 语法格式: do 循环体; while(条件表达式); using System; class Sum static void Main( ) int i=1, j; long m, sum=0; do m=1; j=1; do m*=j; j+; while(j=i); sum+=m; i+; while (i=10); Console.WriteLine(“1!+2!+10!=0”, sum); 例:使用do-while语句,编程计算1!+2!+10!。 for语句和foreach语句 1for语句 语法格式: for(表达式1;表达式2;表达式3) 循环体; 例:使用for循环语句,编程输出120的每个奇数的 平方。 using System; class square static void Main( ) int s; for (int i=1;i20;i+=2) s=i*i; Console.Write(“0t “, s); 2foreach语句 foreach语句用于列举集合中的每一个元素,并且通 过执行循环体对每一个元素进行操作。foreach语句只能 对集合中的元素进行循环操作。 foreach语句的一般语法格式如下: foreach (数据类型 标识符 in 表达式) 循环体 using System; class Test static void Main( )
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石棉废弃物处理与生态效益评价考核试卷
- 耐高温与去污性能考核试卷
- 货物运输安全管理考核试卷
- 航空航天器装配工艺与质量控制考核试卷
- 谷物种植与农业遥感技术考核试卷
- 潜水装备的水下导航技术考核试卷
- 运动场地用塑胶的耐高低温循环性能考核试卷
- 搪瓷卫生洁具基础知识考核试卷
- 物料管理盘点体系构建与实施
- 新生儿急症护理
- 2022版义务教育语文课程标准考试测试卷及答案(共三套)
- GB 1499.1-2024钢筋混凝土用钢第1部分:热轧光圆钢筋
- 药物相关血小板减少诊疗专家共识(2023版)
- 康养旅游项目策划方案毕业设计(2篇)
- SMD车间ESD测试报告
- 土方及场地平整技术交底
- TB 10752-2018 高速铁路桥涵工程施工质量验收标准
- 2024春期国开电大本科《当代中国政治制度》在线形考(形考任务一至四)试题及答案
- 《水电工程水生生态调查与评价技术规范》(NB-T 10079-2018)
- 《中医常用护理技术基础》课件-一般护理-第四节饮食护理
- 数字化智慧病理科建设方案
评论
0/150
提交评论