欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    课堂笔记c#.docx

    • 资源ID:2020112       资源大小:36.78KB        全文页数:39页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    课堂笔记c#.docx

    1、课堂笔记c#考 试 大 纲 C#一、 .Net Framework的组成:1. CLR公共语言运行时(common language run-time)负责内存的分配与回收,调试等。a) CTS通用类型系统(common type system):所有语言共有的数据类型b) CLS公共语言规范(common language specification):各语言如果相互调用,识别,所必须遵守的一组规定。2. 基础类库(FCL)foundation class library:微软已经写好的一些类库-约1.3万。二、 基础知识:1. 常用的数据类型:int,short,char等,注意:可空数据

    2、类型c) 整数类型i. 有符号整数:sbyte,short,int,long sbyte 占有1个字节(8个二进制位),取值范围:-128 127 short 占有2个字节(16个二进制位),取值范围:-32768 32767 int占有4个字节(32个二进制位),取值范围:-2147483648 2147483647 如:int age = 13; long占有8个字节(64个二进制位),取值范围:9,223,372,036,854,775,8089,223,372,036,854,775,807long num = 31413Lii. 无符号整数:byte,ushort,uint,ulon

    3、g byte占有1个字节(8个二进制位),取值范围:0 255 ushort占有2个字节(16个二进制位),取值范围:065535 uint占有4个字节(32个二进制位),取值范围:04294967295 ulong占有8个字节(64个二进制位),取值范围:018,446,744,073,709,551,615如:ulong num = 3414324ULd) 浮点数(有小数点)i. 单精度:float,有效位:小数点后的7位。如 float price = 3.0987392Fii. 双精度:double有效位:小数点后的15位。如 float price = 3.0987392222Dii

    4、i. decimal 有效位:小数点后的28位。如 float price = 3.0987392222M备注:decimal对应着数据库的money数据类型。e) 布尔数据类型:bool只有true和falsef) 字符类型i. 单个字符(单引号):char占有2个字节(16个二进制位) 如:char c = a;ii. 字符串(双引号):string 如:string name = “张三”;g) 对象数据类型:是所有数据类型最终的基类只有object 如:object obj = “123”;h) 可空数据类型:? 如:int? age = null;备注:把大的数据类型的变量赋值给小的

    5、数据类型变量,须强制转换。如下: int b = 10; byte c = (byte)b;/ 强制转换2. 常用的运算符合:+,-,*,/,%,空连接运算符i. 算术运算符 一元运算符:+,- int i = 10;int j = -i;int k = j+; i=9 j=10 k=9 二元运算符:+,-,*,/,%10/3 = 3;10%3=1; 10%4=2;10%5=0;ii. 逻辑运算符:返回类型永远是布尔类型 一元运算符:取非(!)bool b = true;bool r = !b; rfalse; 二元运算符:条件与(&),条件或(|) 条件与符号的两边都是true的时候,整个表

    6、达式是true,只要有一个为false,则整个表达式为false if (5 3) & (7 4) /会执行语句条件或(|)符号的两边都是false的时候,整个表达式是false,只要有一个为true,则整个表达式为true if (5 3) | (4 7) /会执行语句iii. 字符串运算符(+)string str = “zhang” + “san”;/str = “zhangsan”;iv. 比较运算符:=,!= , ,=,:如:判断3是否大于5: 35 判断是否大于等于=:如:判断3是否大于等于5: 3=5 判断是否小于:如:判断3是否小于5: 35 判断是否小于等于=:如:判断3是否

    7、小于等于5: 3 9)?7:6; 备注:如果想让那两个数据先运行,则用小括号()括起来。3. 变量的定义:根据定义的位置不同:a) 字段:定义在类的里面,方法的外边的变量b) 局部变量:定义在方法的里边的变量c) 变量的命名规则:第一个位置必须是字母或下划线或,但只能包括字母,数字,下划线。d) 格式:数据类型 变量名字(注意:如果是字段的话,需要前边加上访问修饰符:访问修饰符 数据类型 变量名字)4. 5个访问修饰符:private,protected,internal,protected internal,public。a) 私有的(private):修饰的变量只能在当前类中访问,而其他类

    8、中不能访问。b) 受保护的(protected):修饰的变量只能在当前类中访问,或当前类的子类(派生类)中访问。c) internal:修饰的变量只能在当前程序集(项目)中所有类访问。d) protected internal:修饰的变量只能在当前类中访问,或当前类的子类(派生类)中访问,在当前程序集(项目)中所有类访问。e) 公共的(public):修饰的变量在任何类中都可以被访问。5. 常量,只读字段。常量:在运行过程中,不能修改常量所保存的值。关键字:const,定义的时候必须初始化(给变量赋值)定义格式:字段常量和局部常量字段常量:访问修饰符 const 数据类型 常量的名字=初始值

    9、如:public const string sex = “男”; 局部常量:const 数据类型 常量的名字=初始值。如:const string sex = “男”;只读字段:在运行过程中,不能修改常量所保存的值,但唯一可以修改该变量的值是在类的构造函数中。关键字:readonly一般情况下只有只读字段如:private readonly string connStr = “data source=.”6. 一维数组,多维数组,交叉数组(交错数组)数组:包含有相同数据类型的一组数。格式:数据类型 数组的名字a) 一维数组:方法一:int ages = new int21,2;/声明并初始化一

    10、个一维数组,中括号里的数字为数组中元素的个数。= ages0 方法二:int ages;/声明一个一维数组 ages = new int6;/ 初始化一维数组方法三:int ages = 1,3,4;/直接赋值,创建一个含有3个元素的一维数组。b) 多维数组(大于等于2维的数组):方法一:int, ages = new int2,31,2,3,4,5,6;/声明并初始化一个二维数组(一个逗号)方法二:int, ages ; ages = new int2,3;方法三:int, age = 1,2,3,4,5,6;Int,三维数组(二个逗号),int,四维数组(三个逗号),。c) 交叉数组:数组

    11、中的数组,其元素是个数组。Int ages = new int2new int21,2,new int33,4,5;7. 4个循环。循环:重复执行相同的语句a) for循环for(数据类型(int) 变量的名字=初值;逻辑表达式(循环的次数);循环变量的操作) /循环体语句执行过程:首先,初始化变量,判读逻辑表达式;是否成立,如果成立,则执行循环体语句,不成立,则不执行循环体语句。成立的时候,当循环体语句已执行完毕,则进行循环变量的操作,然后在判断逻辑表达式是否成立,使用场合:明确知道循环的次数。b) while循环while(逻辑表达式)/循环体语句/修改逻辑表达式执行过程:当逻辑表达式为真

    12、(true)的时候,则执行循环体,否则不执行。使用场合:不知道循环的次数,但是在循环的过程中会改变逻辑表达式的结果。c) do.while(逻辑表达式);do/循环体语句/修改逻辑表达式while(逻辑表达式);执行过程:先执行循环体,修改逻辑表达式的值,然后在判断逻辑表达式是否成立,如果成立,继续执行循环体,否则不执行使用场合:无论怎样先循环一次,然后再判断条件是否成立。d) foreach循环foreach (数据类型 变量 关键字(in) 数组或集合类) /循环体执行过程:首先把数组或集合类的第一个元素拿出来赋值给变量,然后进入循环体,完成之后,再把数组或集合类的第二个元素赋值给变量,进

    13、入循环体循环,三个,四个。使用场合:只看看数组或集合类每一个元素,而不能修改其元素值,若有修改的话,则要使用其他的循环。8. 控制结构:if/else,switchcase语句a) ifelse结构:if (条件表达式) /if语句else执行过程:首先判断条件表达式是否为真(true),若是,则执行if语句,否则不执行,如果有else语句的话,则执行else中的语句。b) switchcase/代替超过4个if的时候switch(表达式) case 常量1: /case 语句 break;case 常量2: /case 语句 break;case 常量3: /case 语句 break;。

    14、default : /default语句; break;使用的场合:当ifelse语句超过4个的时候,就可以考虑是该语句。执行过程:首先计算表达式的值,然后和case语句后的常量进行比较,若有一个相同的,则执行该case语句,若没有,则执行default语句。9. 值类型,引用类型,拆,装箱,常用的引用类型,值类型。栈:一种先进后出(后进先出)的存储数据的结构体堆:一块连续的,自由的存储空间。值类型:变量直接保存其数据。引用类型:变量保存其数据的引用(地址),而不是具体的数据。值类型:所有的数值类型(int,short,byte,long,float,double,decimal),结构,枚举

    15、等。引用类型:所有的类,接口,委托,数组等。装箱:把值类型转换成引用类型的过程。把一个值类型赋值给一个引用类型拆箱:把引用类型转换成值类型的过程。把一个引用类型赋值给一个值类型(需要用装箱的数据类型转换) object obj; short i = 123;obj = i;/装箱操作 int j = (short )obj;/拆箱操作,需要用装箱的数据类型转换 Console.WriteLine(obj);10. 类,结构,枚举,注意:结构和类之间的区别a) 类:存储数据一种结构体,是面向对象编程的基础。 定义类的格式:访问修饰符 类的属性 关键字(class) 类的名字(首写字母必须大写)如

    16、:public class DemoStudent备注:类是创建对象的模板,只有有了类之后,才可以创建对象。创建对象的格式:类名 对象名字 = 关键字(new)类名(参数);创建对象的过程:通过调用类的实例(对象)构造函数,来创建对象。构造函数可分为2类:类构造函数和实例构造函数。类构造函数:负责在内存构建类,又称为静态构造函数,如果类在内存中不销毁的(也就是说没有被回收掉),只调用一次。格式:静态(static) 类名()/语句实例构造函数:类似一个方法,但是没有返回类型。每创建对象,就调用该函数。具体格式:访问修饰符 类的名字(参数列表),一个类里面可以多个构造函数。如果一类中没有显式定义

    17、一个构造函数,那么在编译的时候,编译器就会给该类创建一个没有参数并且访问修饰符是public的构造函数:public 类名(),但是一旦给类定义了一个构造函数的话,哪么编译器就不会给该类添加任何的构造函数。b) 结构:存储数据一种结构体,一般用在算数计算方面。定义的格式:访问修饰符 关键字(struct) 结构的名字(首写字母必须大写)如:public struct Student创建对象的格式:结构名 对象名字 = 关键字(new)结构名(参数);或者:结构名 对象名字;创建对象的过程:通过调用结构的构造函数,来创建对象。结构的构造函数:类似一个方法,但是没有返回类型。具体格式:访问修饰符

    18、结构的名字(参数列表),一个结构里面可以多个构造函数。在编译的时候,编译器总要给结构创建一个没有参数并且访问修饰符是public的构造函数,如果要给结构体添加构造函数的话,只能添加含有参数的构造函数,:public 类名(参数) c) 枚举:把所有可能取的数据全部都列举出来,存放到一个称为枚举的数据结构里,但是这些数据必须是整数,并且可一个这些数据起一个名字,用改名字代表具体的数据。默认的情况下,第一个枚举值所代表的数字是0。定义的格式:访问修饰符 关键字(enum) 枚举的名字 枚举值1 = 整数,枚举值2 = 整数,。枚举值n = 整数使用的方法:枚举的名字 枚举变量 =枚举的名字. 枚举

    19、值11. 定义(静态)方法,参数引用的传递:out,ref,两者之间的区别。params的使用定义方法:格式:访问修饰符 方法的属性 方法的返回类型 方法的名字(形参) /方法体备注方法的名字符合变量的命名规则,但是首写字母必须大写,若含有好几个单词,则需每一个单词的首写字母大写。若方法不需要返回数据,则是void如:public void SetValue(int val)方法的调用:格式:方法名(实参);调用方法时,有传值和传引用的区分,对于传值只是把变量所对的数据传递给方法了,而对于传引用来说,是把把变量的引用(地址)传递给方法了,因此在方法中对变量进行了修改,那么原来的变量也会发生改变

    20、。对于传递引用来说,可以通过,out或ref来完成。当使用out传递引用的时候,在调用方法之前不必给变量赋值,而在被调用方法结束之前必须给变量赋值。当使用ref传递引用的时候,在调用方法之前必须给变量赋值。params :在定义方法的时候,用来修饰传递可变数目参数,只能用在最后一个形参上,好处是调用方法的时候不必再定义一个数组,而是直接调用。12. 所有类的基类-System.Objecta) public virtual bool Equals(Object obj) 作用:确定指定的 Object 是否等于当前的 Object。b) 13. 字符串的操作相加 “+”如:“123” + “4

    21、56”=“123456”三、 面向对象的编程:三个主要的性质:封装性,继承性,多态性。封装性:把类的实现细节隐藏起来,对其他类来说,只关心方法的调用,而不必关注具体的实现。System.Console.WriteLine(),对于这个方法来说,我们只知道调用该方法,就可以向控制台输出一句话,而方法的内部实现我们不必关心,这就是类的封装性。1. 由于类的封装性,不允许访问类的私有字段:定义属性,索引器都有3个类型,对于08来说,要会定义自动化属性。a) 定义属性的格式:public 数据类型 属性名字 get/获得私有字段所保存的值 return /私有字段set/给私有字段赋一个新的值 私有字

    22、段 = value;备注:属性的数据类型必须和通过属性所封装的私有字段的数据类型完全一样。对于属性来说可以分为3类:如果只有get我们把属性称之为只读属性;如果只有set我们把属性称之为只写属性;如果既有get又有set我们把属性称之为可读可写属性;怎样访问类的属性:在其他类中,通过创建封装属性的类的实例(对象),通过该对象可以对属性的操作。这样可以实现对类私有字段的间接操作(一方面获取字段所保存的值,另一方面给私有字段赋一个新的值)b) 索引器:封装了类的私有数组的操作,没有名字定义索引器的格式:public 数组中元素的数据类型 关键字(this) 下标 get/根据下标获取数组中该下标所

    23、对应的元素 /先判断下标是否越界 if (下标 = 私有数组元素的个数) throw new IndexOutOfRangeException(“数组越界”) return 私有数组下标set/根据下标获取给数组中该下标所对应的元素赋一个新值 /先判断下标是否越界 if (下标 = 私有数组元素的个数) throw new IndexOutOfRangeException(“数组越界”) 私有数组下标 = value;怎样访问类的属性::在其他类中,通过创建封装索引器的类的实例(对象),通过该对象下标的形式来访问索引器。这样可以实现对类私有数组的间接操作(一方面获取字段所保存的值,另一方面给私

    24、有字段赋一个新的值)2. 继承性:概念:让派生类(子类)拥有基类(父类)所有的功能。实现:通过在派生类后加 “:”冒号,实现继承。好处:增加了代码的重用性。如果一个类没有显示定义其父类,那么他的父类是System.Object,只能有一个基类。创建派生类对象的时候,默认的情况的下,在派生类通过调用基类的默认构造(访问修饰符是public,并且没有任何的形参)函数来创建基类对象的。如果基类没有默认的构造,则需要在派生类中显示调用基类的构造函数。方式:派生类构造函数():base(实参)a) 构造函数:类构造函数,对象构造函数,派生类调用基类的构造函数。b) 防止继承密封类,关键字(sealed)

    25、,该类就不能作为其他类的基类。 3. 多态性:概念:拥有共同基类的派生类,从基类中继承的方法,都有不同的实现方式。a) 抽象类抽象方法:只有方法的声明,而没有具体的实现。含有抽象方法的类,称之为抽象类。抽象类或抽象方法都用到了关键字:abstract对于抽象类来说,只能作为其他类的基类(不能创建对象),而对于派生类来说,如果派生类不是抽象类的话,哪么要求派生类必须重写(关键字override)基类的所有抽象方法。在抽象类中可以含有已经实现的方法,不能创建对象。b) 在派生类中使用new 隐藏基类的方法。如果基类不是抽象类,而是含有一个具体实现方法的类,则在派生类中,通过使用new关键字来实现多

    26、态。c) 基类是虚方法(virtual),派生类重写(override)基类的方法,注意:方法的重载的区别。d) 重载:同一个类中,方法的名字完全一样,但是参数不一样,包括:1.参数的个数不一样,2。参数的数据类型不一样4. 接口:a) 定义接口格式:访问修饰符(public) 关键字(interface) 接口的名字(开始字母是大写I) /只能定义属性,索引器,方法和事件 void Print(); string Nameget;set; string thisint idxget;setb) 接口的继承 接口之间也可以实现继承,和类与类之间的继承方式完全一样。 派生接口:基接口 /c) 类

    27、实现接口(当类实现多个接口时,有可能要显式某个或某些实现接口的方法(名字相同)如果一个实现了某个接口,则必须实现接口中定义的所有的内容。d) 接口作为方法的参数(形参)凡是实现接口的类的对象都可以作为调用方法的实参进行传递。e) 接口作为方法的返回类型 凡是实现接口的类的对象,都可以作为方法返回值。四、 委托概念:类似方法在内存中的首地址,但是它是类型安全的,明确知道方法的返回值类型和参数。可以这样理解:对方法的一个间接调用。定义了委托相当于定义了一个类。格式:访问修饰符 关键字(delegate) 所指向方法的返回类型 委托的名字(形参);使用方式:委托的名字 委托对象 = 关键字(new

    28、) 委托的名字(所指向方法的名字); 委托对象(实参);委托的分类:单播委托,多播委托单播委托:所指向方法的返回类型是具体的数据类型(如:int,short等);多播委托:所指向方法的返回类型不是具体的数据类型,而是空(void);匿名委托,拉莫达表达式五、 异常:概念:程序处理不可预知错误的能力。作用:增加程序的容错能力。格式:Try /把有可能出现错误的语句写在此处Catch (具体的异常 异常的变量) /对错误的处理,如果想在把异常抛出的话,用throw;Catch (具体的异常 异常的变量) /对错误的处理,如果想在把异常抛出的话,用throw;Catch (Excepton 异常的变量) /对错误的处理,如果想在把异常抛出的话,用throw;【Finally /执行资源的清理工作。如:释放数据库的连接,释放文件流】异常继承关系:最重要的属性:Message,该属性包含的出现错误的详细信息。对于异常最终的基类:Exception异常的结构。e.Message的使用六、 集合首先必须添加System.Col


    注意事项

    本文(课堂笔记c#.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开