您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > C#NET 软件工程师0901Video0 -学习笔记
1C#_Day01_1C#和开发环境介绍C#的4个特点:简单、面向对象、与Web紧密结合和基于.NETFramework。在“类视图”中管理项目:·可以从“类视图”中获得通常可用于“解决方案资源管理器”中符号的所有命令;·通过类视图可以方便快捷地查找某个类,某个功能模块的位置。C#_Day01_2可视化开发的初步认识智能感知。窗体(Form)和控件(Control):每个窗体可控件都有各自的属性,它们一起构成了应用程序的可视化部分——图形用户界面(GraphicUserInterface,GUI)。C#_Day01_3C#基本数据类型C#数据类型:包括值类型、引用类型(类、接口、数组、字符串、委托、其他)引用类型:在内存中不直接存储引用类型的数据,而是存储该数据的地址。引用类型包括:类(Class)、接口(Interface)、数组(Array)和字符串(String)等等。值类型:简单类型Simpletype(有符号整数、无符号整数、Unicode字符、IEEE浮点数、十进制数decimal、布尔值)、枚举类型Enumtype(enumE{……})、结构类型Structtype(structS{......})。float单精度32bit、double双精度64bit、decimal十进制类型128bit在C#中,真、假不能有0、1表示,只能用true、false表示。变量使用原则:先声明、后使用定义常量:const数据类型常量表达式C#_Day01_4枚举_结构_类型转换枚举类型enum:是一组在逻辑上密不可分的整数提供便于记忆的符号。本质上枚举是整型,默认枚举第一个枚举项:=0,以后的项自动加1,可以给单独的项定义特定的值。比如,声明一个代表季节的枚举类型的变量:EnumSeason{Spring,Summer,Autumn,Winter};定义格式:Seasona;//此处Season相当于一个类型了,跟int、char相同的结构类型:轻量级的类。把一系列相关的变量组织成单一的实体的过程,在C#中称为生成结构的过程。这个单一的尸体的类型就叫做结构类型,每个变量称为结构的成员。struct点{publicintX;//如果此处没有public,不能在下面的程序中看到publicintY;//一般定义结构类型时,都需要添加public}点point;point.X=10;point.Y=20;结构类型是值类型,所以效率更高。泛型:一种定义一个可以在使用时才能确定的类型的数据类型的机制。类型转换:隐式类型转换(隐式类型转换、隐式枚举转换)、显示类型转换、其他。实现时,从小向大转换。如下表所示:隐式数值转换。隐式枚举转换:允许把十进制整数0转换成任何枚举类型,而其他的整数则不存在这种隐式转换。例如:季节s3=0;合理。//其找季节就是枚举类型强制类型转换:目标变量=(目标数据类型)要转换的变量;2String与其他数据类型转换C#_Day01_5运算符和表达式运算符分为三类:一元运算符,二元运算符,三元运算符string评价=age30?年龄偏大:年龄合适;//三元运算符3C#_Day02_1程序结构_条件语句程序的三种语句:顺序结构、分支结构、循环结构。4C#_Day02_2循环语句5C#_Day02_3面向对象_类成员理解面向对象67字段:成员变量C#_Day02_4属性_索引器属性(Property):namespaceConsoleApplication4{//注意:一般将类写在此处,最佳位置。//决不能将类写在Main中publicclassStudent{privatestringname;//成员变量privateintage=18;//默认值publicStudent()//构造函数{this.name=未起名;}publicvoidGiveName(stringname)8{if(name==小毛){//不执行什么}else{this.name=name;}}publicvoidHi(){stringtxt=你好,我是:+this.name;Console.WriteLine(txt);}publicintAge//在调用时,返回age,也可设置{//get和set只读可以、只写可以、可读可写可以get//只读{returnthis.age;}set//只写{//this.age=value;if(value18){Console.WriteLine(年龄:+value.ToString()+不符合要求);}}}}classProgram{staticvoidMain(string[]args){Studentstu1=newStudent();//stu1.GiveName(小毛);//stu1.Hi();Studentstu2=newStudent();//stu2.GiveName(张三);//stu2.Hi();9stu1.Age=-10;intage=stu1.Age;Console.WriteLine(age);stu1.Age=20;Console.WriteLine(stu1.Age);Console.ReadLine();}}}索引器(indexer)publicclassClazz//班级类{privatestring[]_students={张三,李四,王五};publicstringthis[intindex]//index传过来的参数,是索引器的参数{//不是属性的参数,是索引器的参数,this就是专用的//c[2]=赵六;set{this._students[index-1]=value;}//stringstuname=c[3];get{10returnthis._students[index-1];}}}classProgram{staticvoidMain(string[]args){Clazzc=newClazz();stringstuname=c[2];//使用索引Console.WriteLine(stuname);c[2]=赵六;//赋值,setstuname=c[2];//取值,getConsole.WriteLine(stuname);Console.ReadLine();}}C#_Day02_5方法参数传递方法的声明:必须在类中声明方法。{}方法的返回值方法的参数11方法的参数包括:方法的定义:staticpublicintAddNumbers2(paramsint[]numbers){//params关键字:参数数组//所需要使用的参数,数量不确定时//注意:如果还有其他参数,记得一定要让参数数组最后一个参数intsum=0;foreach(intiinnumbers)//只关心元素,不关系元素个数{sum+=i;}returnsum;}intresult=AddNumbers2(2,3,4,5);//其中使用params关键字Console.WriteLine(result);方法的参数传递:staticpublicvoidAdd2ByRef(refintnumber)//传递引用{number+=2;}12intt=15;Add2ByRef(reft);//传递引用Console.WriteLine(t);//结果是17相互信任。staticpublicvoidAdd2ByOut(outintnumber){number=10;//里面赋值,外面不用赋值number=number+2;}intm;//方法外边不用赋值,赋值操作已经在out里面执行了Add2ByOut(outm);//就算外面赋值,也没有用了Console.WriteLine(m);//结果12C#_Day03_1构造函数_静态构造函数_变量的作用域·构造函数可以相互调用的13namespaceConsoleApplication5{publicclassTeacher{//空类系统会默认生成构造函数}publicclassStudent{privateintage;publicintAge//放在age上面右击重构封装起来{get{returnage;}set{age=value;}}privatestringname;publicstringName{get{returnname;}set{name=value;}}publicvoidHello(){Console.WriteLine(大家好,我是:{0},今年:{1}岁,this.name,this.age);}////构造函数,构造函数可以定义多个,但参数不一样,重载publicStudent(intAge,stringName){this.age=Age;this.name=Name;}publicStudent(intAge):this(Age,未命名){}publicStudent():this(18){}14publicstaticintGoSchoolAge;//静态成员,属于所有类的实例的数据与具体的实例无关staticStudent()//静态构造函数必须无参数{//静态构造函数不能有访问性修饰符GoSchoolAge=18;//静态构造函数最多只能调用一次Console.WriteLine(执行静态构造函数,只执行1次);//}}classProgram{staticvoidMain(string[]args){Teachert=newTeacher();//系统会默认生成构造函数Console.WriteLine(Student.GoSchoolAge);//调用成员//静态构造函数在第一次调用类的方法或成员(实例或静态)时,自动调用Students=newStudent();Studentstu=newStudent(19,张三);//构造函数是系统自动调用的,不能显式的调用,只要写出new时,自动调用//stu.Age=19;//stu.Name=张三;stu.Hello();Console.ReadLine();}}}15C#_Day03_2方法重载_可访问性修饰符_static_const_readonly//方法重载publicvoidHello(){Console.WriteLine(大家好,我是:{0},今年:{1}岁,this.name,this.age);}publicvoidHello(stringfriend){Console.WriteLine({2},你好,我是:{0},今年:{1}岁,this.name,this.age,friend);}stu.Hello();stu.Hello(小猪);面向对象程序设计中的关键字可访问性修饰符、Static、Const、Readonly、this可访问性修饰符16Static关键字·静态的,不需要创建类的实例,就可以直接通过类名来访问·static成员·static方法·static构造函数publicstaticvoidDemo()//静态成员{}Student.Demo();//静态成员必须通过类名来调用Const关键字Readonly关键字17publicreadonlyTeacher导师;//一旦赋值后就不能再变publicStudent(Teacherteacher):this()//构造函数快捷键ctorTabTab{this.导师=teacher;}stu=newStudent(newTeacher());C#_Day03_3this关键字this关键字namespaceConsoleApplication5{publicclassData{privateint_int数据;publicintInt数据{get{return_int数据;}set{_int数据=value;}}18privatestring_string数据;publicstringString数据{get{return_string数据;}set
本文标题:C#NET 软件工程师0901Video0 -学习笔记
链接地址:https://www.777doc.com/doc-6290603 .html