




免费预览已结束,剩余49页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一讲C#程序基础,1.1简单的C#程序及其构成1.1.1第一个C#程序,例1、usingsystem;classHelloWorldpublicstaticvoidMain()Console.WriteLine(“HelloWorld!”);程序作用:输出一行信息“HelloWorld!”。,表示导入名字空间,相当于C中的#include,用class来声明一个新的类,类的名字为HelloWorld,定义一个Main方法,public表示访问权限,static指明这是一个静态方法。该方法作为整个程序的入口,首字母要大写。,实现字符串的输出。Console是在名字空间System中定义的类,表示控制台输入输出设备,即键盘和显示器。类中有两个基本的方法Readline和Writeline,还有Read和Write方法。,例2、简单窗口程序usingSystem;usingSystem.Drawing;usingSystem.Windows.FormspublicclassHelloWorldForm:System.Windows.Forms.FormpublicHelloWorldForm()this.ClientSize=newSystem.Drawing.Size(200,180);this.Name=“HelloWorldForm”;this.Text=“HelloWorldForm”;this.Paint+=newSystem.Windows.Forms.PaintEventHandler(this.HelloWorldForm_Paint);,声明一个公共类,并用“:”指明它是Form(窗体)的子类。,设定了窗体的大小、名字和标题文字,并对绘制事件(Paint)进行了处理。,staticvoidMain()Application.Run(newHelloWorldForm();privatevoidHelloWorleForm_Paint(objectsender,System.Windows.Form.PaintEventArgse)e.Graphics.DrawString(“Hello,world”,newFont(“CuriorNew”,12f),newSolidBrush(Color.Blue),50f,100f,null);,用Graphics的方法DrawString()在坐标(50f,100f)处输出字符串。,用Application.Run方法调用一个新建的窗体。,usingSystem;例3、另一个简单的窗口程序usingSystem.Drawing;usingSystem.Windows.Forms;namespacech01publicclassHelloWorldWin:System.Windows.Forms.FormpublicHelloWorldWin()InitializeComponent();privatevoidInitializeComponent()this.Clinetsize=newSystem.Drawing.Size(200,180);this.Name=“HelloWorldWin”;this.Text=“HelloWorldWin”;this.Paint+=newSystem.Windows.Forms.PaintEventHandler(this.HelloWorldWin_Paint);,表示类所在的名字空间,在namespace的花括号内,可以嵌套一些using语句、类型定义或者其他的namespace。,staticvoidMain()Application.Run(newHelloWorldWin();privatevoidHelloWorldWin_Paint(objectsender,System.Windows.Form.PaintEventArgse)e.Graphics.DrawString(“Hello,world”,newFont(“CuriorNew”,12f),newSolidBrush(Color.Blue),50f,100f,null);,1.1.2C#程序结构概括,语句是C#程序的基本单位之一,每一条语句都由分号“;”结束。类和方法中的所有语句用一对大括号括起,除了using及namespace语句之外的其他的执行具体操作的语句,都只能存在于类的大括号之中。大小写严格区分。一个程序只有一个程序入口,即一个Main()方法。,程序包含多个.cs文件;每个.cs文件包含0个或多个名字空间;每个名字空间包含多个类及接口的定义;每个类中含有多个变量及方法;每个方法中含有局部变量定义及语句。,1.1.3名称空间(名字空间),名称空间用于在C#程序中定义作用域,通过声明名称空间,开发人员就可以为C#应用程序提供一个层次结构。一个C#源程序可以由多个源代码文件所组成,每个源代码文件又可以包含多个名称空间,一个名称空间中又可以包含其他名称空间,这种多层次的结构构成一个C#程序。,名称空间的声明形式namespace标示符比如:namespaceMycompanypublicclassMyclasspublicstaticvoidDosomething(),1.1.4using语句的使用,1、使用using语句可以访问一个名称空间中所有的类。用using语句指定名称空间以后,就可以直接使用这个名称空间内的类型和方法,而不需要指出类型和方法所在的名称空间。比如:System.Console.WriteLine(“Hello”);如果使用了using语句:usingSystem;就可以写成Console.WriteLine(“Hello”);,2、using语句也可以用来创建别名usingAbc=System.Console;则System.Console.WriteLine(“hello”);可以写成Abc.WriteLine(“hello”);,嵌套的名称空间,namespaceMycompanypublicclassMyCspaceNestedpublicclassNestedClasspublicstaticvoidSayHello()System.Console.WriteLine(“Hello”);,usingMyspace=Mycompany.Nested;publicclassUnNestedClasspublicstaticvoidMain()Myspace.NestedClass.SayHello();,1.1.5Main方法,Main方法是程序的入口点,程序控制在该方法中开始和结束。每个C#程序都必须在它的某个类中定义一个Main方法,而且这个方法还必须定义为static和public无论在哪个类中定义这个方法,C#编译器都可以直接定位到这个方法作为程序执行的入口。,Main方法可以使用命令行参数,声名时可以有以下两种形式:publicstaticintMain(stringargs)publicstaticvoidMain(stringargs)命令行参数实际是一个string数组,元素有args0,args1等。,1.2C#程序中的基本输入输出,字符界面的输入输出要用到System.Console来表示,System.Console的Read()方法可以输入一个字符,ReadLine()方法可以输入一行字符串,Write()方法可以输出一个数据或一个字符串(字符串之间或字符串与其他变量之间可以用加号+表示连接),WriteLine()方法可以输出一个字符串并换行。,1.2.1字符界面的输入和输出,usingSystem;publicclassCharInandOutpublicstaticvoidMain(stringargs)charc=;System.Console.Write(“Pleaseinputachar:”);c=(char)System.Console.Read();Console.WriteLine(“youhaveentered:”+c);,例1.单个字符的输入输出,usingSystem;publicclassLineInandOutpublicstaticvoidMain(stringargs)strings=“;Console.Write(“pleaseinputaline:”);s=Console.ReadLine();Console.WriteLine(“youhaveentered:”+s);,例2.整行字符的输入输出,例3.数字的输入输出(将输入的字符串转成数字如整数int或实数double)。usingSystem;publicclassNumInandOutpublicstaticvoidMain(stringargs)strings=“;intn=0;doubled=0;Console.WriteLine(“pleaseinputanint:”);s=Console.ReadLine();n=Int32.Parse(s);s=Console.ReadLine();d=Double.Parse(s);Console.WriteLine(“youhaveentered:”+n+”and”+d);,Int32.Prase()方法,将字符串转成整数。,Double.Parse()方法,将字符串转成实数。,(1)如果有多项信息,信息之间可以用加号“+”连接起来,以表示形成一个字符串,例如:Console.WriteLine(“youhaveentered:”+n+”and”+d);(2)如果在字符串中有变量,还可以在字符串中用0、1、2等分别表示各个变量。例如:Console.WritrLine(“youhaveentered:0and1”,n,d);,注意:,图形界面最基本的输入输出是使用文本框对象(TextBox)获取用户输入的数据,使用标签对象(Label)或文本框对象输出数据,使用命令按纽(Button)来执行命令。图形界面的程序最好借助于IDE集成开发工具来实现。,2.2.2图形界面的输入和输出,usingSystem;usingSystem.Windows.Forms;usingSystem.Drawing;publicclassWinInOut:FormTextBoxtxt=newTextBox();Buttonbtn=newButton();Labellbl=newLabel();publicvoidinit()this.Controls.Add(txt);this.Controls.Add(btn);this.Controls.Add(lbl);txt.Dock=System.,例1-7图形界面输入输出。,2.3C#程序中的数据类型,数据类型,值类型,引用类型,简单类型,枚举类型,结构类型,类class,接口类型interface,指代类型delegate,数组类型,整型、字符型,实型、十进制型,布尔型,直接包含数据,存储对于对象的引用,2.3.1简单类型,1、整数类型C#中有九种整数类型:短字节型sbyte、字节型byte、短整型short、无符号短整型ushort、整型int、无符号整型uint、长整型long、无符号长整型ulong、字符型char(采用unicode编码)。2、实数类型单精度实数float和双精度实数double,分别占用4字节和8字节。3、十进制类型十进制类型decimal,为高精度128位数据类型(即16字节),可以表示2829位有效数字。,4、布尔类型用来表示逻辑数据的类型,取值只有“真”true和“假”false两个。5、字符串类型string是引用类型的一种,表示一连串的字符,书写时用一对双引号来表示,如“hello!”。6、对象类型object是一切对象类型的父类型,是引用类型的一种,其他类型都从对象类型派生而来。,2.3.2标识符与关键字,标识符即变量方法等的名字,C#中的标识符以字母或下划线开头,包含字母、数字和下划线。可以以作为前缀,但是并不是标识符的一部分,只是为了让一些关键字也可以成为用户使用的标识符,如class。C#是大小写敏感的语言,C#中的关键字都是由小写字母组成的。,2.3.3字面常量,1、布尔常量:true,false。2、整型常量:十进制为100,-39;十六进制用0 x开头如0 x1a;长整型在数字后加上l,无符号常量则在数字后面加上u。注意:没有八进制常量。3、实数常量及十进制常量:可以使用普通小数方式也可以使用指数方式(1.23E2),单精度后面加f或F,双精度后面加d或D。十进制常量后面加M或m。小数后面如果没有加符号,则会被自动认为是双精度常量。4、字符常量:用单引号表示如A,还可以用u后面跟十六进制数如u0041表示字母A。还有转义字符,与C语言类似。,5、字符串常量:用双引号括起,中间可以包含转义字符,双引号必须在同一行上。的特殊用法:用来取消转义。必须放在引号的前面并且要直接相邻。如“serversharefile.txt”“serversharefile.txt”如果在字符串中有一个双引号,则要用两个双引号表示如“say“hello”tome”可以表示成“say“hello”tome”。,整型,C#中的每个整型类型都对应于.NET类库中定义的一个结构。例如:intSystem.Int32(struct)注意取值范围。,字符类型,采用Unicode字符集来表示字符类型。16位。可以表示单个汉字。chara=共;常用转义符。System.Char,实数类型,常用属性:MinValue、MaxValueNaN、PositiveInfinity、NegativeInfinity,注意后缀,布尔类型,System.Boolean错误:无法将类型“int”隐式转换为“bool”,inti=1;if(i),在bool类型和其他类型之间不存在任何对应关系。,数组,数组是同一数据类型的一组值数组属于引用类型,因此存储在堆内存中数组元素初始化或给数组元素赋值都可以在声明数组时或在程序的后面阶段中进行语法:数据类型数组名称;intarrayHere;,数组,学生分数的整数数组,职员姓名的字符串数组,室温的浮点数组,数组位置,数组,staticvoidMain(stringargs)intcount;Console.WriteLine(请输入您要登记的学生人数);count=int.Parse(Console.ReadLine();/声明一个存放姓名的字符串数组,其长度等于提供的学生人数stringnames=newstringcount;/用一个for循环来接受姓名for(inti=0;icount;i+)Console.WriteLine(“请输入学生0的姓名,i+1);namesi=Console.ReadLine();Console.WriteLine(已登记的学生如下:);/用foreach循环显示姓名foreach(stringdispinnames)Console.WriteLine(0,disp);,数组声明,初始化数组元素的循环,显示输出的循环,一维数组,声明并初始化intarray1=newint51,3,5,7,9;stringweekDays=newstringSun,Mon,Tue,Wed,Thu,Fri,Sat;intarray2=1,3,5,7,9;stringweekDays2=Sun,Mon,Tue,Wed,Thu,Fri,Sat;声明一个数组变量但不将其初始化intarray3;array3=newint1,3,5,7,9;/OK/array3=1,3,5,7,9;/Error,动态数组,从System.Array类派生而来。常用属性和方法:Length属性、GetLength方法Rank属性GetValue方法、索引函数,一维数组规则多维数组不规则多维数组(交叉数组),注意:1、声明的方法2、数组的长度,结构类型和枚举类型,圆点连接符枚举类型和整型之间的类型转换,类型转换,数值(字符)转换,枚举转换,引用转换,装箱和拆箱,隐式转换,显式转换,数值转换原则,从低精度类型到高精度类型通常可以进行隐式转换;从高精度类型到低精度类型则必须进行显示转换。,枚举转换,隐式转换:将0直接赋给枚举类型的变量;显式转换:其它情况。,引用转换,继承双方之间的转换数组之间的转换空引用值null可以赋给任何一种引用类型的变量。,装箱和拆箱,值类型和引用类型之间的类型转换。,intx=2;objecto=x;inty=(int)o;,foreach循环,staticvoidMain(stringargs)/存放字母的个数intcountLetters=0;/存放数字的个数intcountDigits=0;/存放标点符号的个数intcountPunctuations=0;/用户提供的输入stringinput;Console.WriteLine(请输入一个字符串);input=Console.ReadLine();/声明foreach循环以遍历输入的字符串中的每个字符。foreach(charchrininput)/检查字母if(char.IsLetter(chr)countLetters+;/检查数字if(char.IsDigit(chr)countDigits+;/检查标点符号if(char.IsPunctuation(chr)countPunctuations+;Console.WriteLine(“字母的个数为:0,countLetters);Console.WriteLine(“数字的个数为:0,countDigits);Console.WriteLine(“标点符号的个数为:0,countPunctuations);,为所有计数器设置初始值,接受输入,对输入的每一个字符都进行循环,使用了所有输入的字符之后,循环自动终止,三、表达式,true,false,(T)e,null,如何比较两个对象的类型?,a.GetType()=b.GetType();,类,类是对一系列具有相同性质的对象的抽象。类和结构的根本区别:结构是值类型,类是引用类型。publicclassstudent:Objectpublicintid;publicstringname;protectedinttag;privateintage;,属性用于表示对象的状态。C#中的属性成员称为“域”,而“属性”则是“属性化的方法”的专用名词。在定义属性时,用set及get来表示。publicintsizegetreturnsize;setsize=value;而在使用时,可以简单地直接使用。inta=foo.size;foo.size=100;,1、属性,对象索引就是属性数组,利用下标来取得对象的属性数据。同样用get和set来表达,但与属性不同的是,索引没有名字,在定义时直接用this表示,在使用时,用“下标”来表示。,2、索引(Indexer),指代(又叫代理或委派)是用来指代函数的,可以理解为一种类型安全的、面向对象的函数指针。C#直接使用delegate和event关键字来解决事件问题。,3、指代及事件(Delegate及Event),代表,类似于C和C+等编程语言中的函数指针,用于封装某个方法的调用过程。在C#中,代表是完全面向对象的,它所封装的方法必须与某个类或对象相关联。,this关键字,代词,用于代指一个变量,仅限于在类的非静态方法成员中使用。在构造函数中出现,表示正在构造的对象本身;在方法成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年智能家居互联互通标准与产业布局优化策略报告
- 新能源行业2025年储能技术协同创新趋势报告
- 激光医学测试题目及答案
- 小学音乐会考试题及答案
- 高中物理光的颜色 色散教学设计
- 新能源产品创新2025:市场需求变化与调整策略分析报告
- 甘肃省武威市第十七中学七年级地理上册 2.1 大洲和大洋说课稿2 新人教版
- 2025年初二上册英语试卷及答案
- 2025年学英语的试卷及答案
- 高考数学仿真题库及答案
- GJB2489A2023航空机载设备履历本及产品合格证编制要求
- 屠宰加工人员职业技能模拟试卷含答案
- 无烟世界健康共享课件
- 宁波银行2025-2026年招聘考试笔试题内容历年考试真题
- 心力衰竭健康教育
- 锂电池实验室管理办法
- 学堂在线 新闻摄影 期末考试答案
- 统编版语文五年级上册 第一单元核心素养展示
- 患者出院健康指导
- 校本研修教学课件
- 物业客服部日常工作
评论
0/150
提交评论