C#知识点总结

秦王的和氏璧

发布日期: 2020-08-11 10:37:35 浏览量: 99
评分:
star star star star star star star star star star
*转载请注明来自write-bug.com
  • C#数据类型的分类:值类型(简单类型(整数型:char、short、int、long,浮点型:float、double,小数型decimal,布尔型bool)、枚举类型enum、结构类型struct)和引用类型

  • 值类型和引用类型的定义及其类型间区别

    • 值类型:栈,包括结构体(数值类型,bool型,用户定义的结构体),枚举,可空类型;引用类型:堆,包括数组、类,接口、委托、object、字符串。
    • 区别:值类型存取速度快,存储在栈里,直接存放数据;引用类型存取速度慢,存储在堆里,存放数据地址。
  • 数据类型间的转换方法:隐式、显示

  • 分支流程控制,if,switch

  • 循环流程控制,while, do…while, for, foreach,特别是foreach的使用方法。

  • 理解面向对象最基本的四个特征:抽象、封装、继承、多态

  • 类的声明、实例化: [访问修饰符] class 类名 [:基类] {类的成员;}定义类之后,可以用定义的类声明对象,然后再通过这个对象来访问其数据或调用其方法。

  • 理解类及成员的可访问性(访问修饰符的作用)

    • public:公共的,访问不受任何限制,允许跨程序集引用,可用来修饰类及其成员。
    • internal:内部的,只允许在当前程序集内部使用,可用来修饰类及其成员。
    • private:私有的,只允许在该类内部使用,不允许其他类访问,只能用来修饰类成员。
    • protected internal:仅限于当前程序集内部使用,只允许该类及其派生类使用, 只能用来修饰类成员。
    • protected:受保护的,只允许该类及其派生类使用, 只能用来修饰类成员。
  • 掌握类成员(字段、属性、构造函数、常量、方法)及其定义方法,属性get和set访问器

    • [访问修饰符] 数据类型 字段名;
    • [访问修饰符] 数据类型 属性名{get{//获取属性的代码,用return 返回值} set{//设置属性的代码,用value赋值}}
    • [访问修饰符] 构造函数名([参数列表]){ [语句;]}
    • [访问修饰符] const 数据类型 常量名=常量的值;
    • [访问修饰符] 返回值类型 方法名 ([参数列表]){语句;……[return 返回值;]}
  • 方法的重载:同一类中定义多个同名方法,同名方法的参数个数或参数类型不同

  • 方法的参数传递5种形式及特点

    • 按值传参:单向值传递,形参值不会影响实参值,string和object(两种引用型)有按值传参效果
    • 按引用传参:形、实参变量指向同一个引用,必须对实参明确赋初值(值类型和string类型参数的形参和实参都必须添加ref关键字)
    • 输出参数:不需要对实参赋初值(ref除外),但形参必须在赋值后才能用,被调方法结束前必须给输出参数赋值。形参、实参都使用out关键字来声明,一个方法中可允许有多个输出参数
    • 引用类型的参数:按引用传递,不用ref或out关键字
    • 数组型参数:形参数组前不添加params修饰符,实参是一个数组名;形参数组前添加params修饰符,对应的实参可以是数组名,也可以是数组元素值的列表
  • 静态类的定义及使用方法,静态成员、静态构造函数等的特点:只包含静态成员的类;静态成员只能用类名引用(和Java、C++不同),静态方法只能访问静态成员;静态构造函数是用来初始化静态字段的,不能有访问修饰符、参数列表和返回值,如:static Student(){}

  • 抽象类、密封类、接口的定义及使用方法

    • 只要包含无法实现的成员的类就是抽象类,抽象成员必须在抽象类中声明但抽象类不一定包含抽象成员,抽象类和抽象方法都必须用abstract定义,如:public abstract double Cubage();,抽象属性只声明该属性的数据类型、名字、可访问性等,如:public abstract double Length{get;set;}
    • 阻止一个类被其他类继承,sealed
    • 只含有公共抽象方法、可以实现多重继承的类,interface
  • 基本类和派生类的定义方法,派生类中构造函数的定义及调用:基类的构造函数负责初始化基类的成员字段,派生类的构造函数之初始化新添加的成员字段;声明派生类的构造函数时必须使用base关键字向基类的构造函数传递参数

  • 多态(new,virtual,override)的实现方法及其区别:new是在程序编译时对基类方法的替换,使用virtual定义虚方法再在派生类中使用override是在程序运行时的重写

  • 虚方法及抽象方法的异同

    • 异:虚方法有方法体而抽象方法没有;抽象方法只能在抽象类中声明但虚方法不是;要想实例化虚方法可以不重写但抽象方法必须要派生类覆盖即派生类必须重写抽象类的抽象方法但虚方法不必
    • 同:修饰符都不能用private、static
  • 基本类和派生类对象间的类型转换,详见书126页

    • 派生类对象即使强制转换为基类对象,所引用的仍然是派生类成员
    • Dog x = new Animal();d = (Dog)a;都是错的
  • 集合的定义及简单使用:高度结构化地存储任意对象的类,可以随意调整大小

    • ArrayList al=new ArrayList();
    • Student stu1=(Student)al[0];
  • 程序错误类型:语法错误、逻辑错误、运行时错误

  • 程序异常的定义及异常处理方法:系统可能随时发生的不可预期事件:内存不够、磁盘出错、网络连接中断、数据库无法使用:try….catch、try….catch….catch、try…catch…finally

  • ADO.NET访问数据库步骤,见书271页

    • Connection对象负责连接数据库;
    • Command对象负责对数据库执行命令;
    • DataReader对象负责读取仅向前和只读的数据流;
    • DataSet(数据集)负责建立数据副本和对数据执行命令;
    • DataAdapter对象负责建立数据库和DataSet的联系
  • System.Data.SqlClient中用于数据库访问和操作的主要类(Connection, Command, DataReader, DataSet)的使用方法

    • Connection:

      1. String conString=''DataSource=.;DataBase=shujuku;User ID=xx;Pwd=123;/Integrated Security=True;'';
      2. SqlConnection conn=new SqlConnection(conString);
      3. conn.Open();...;
      4. conn.Close();
    • Command:

      1. SqlCommand comm=new SqlCommand(''sql语句'',conn);
      2. comm.ExecuteNonQuery();执行增删改语句,返回受影响行数
      3. ExecuteReader返回DataReader对象
      4. ExecuteScalar执行查询并返回查询结果的第一列第一行
    • DataReader://抽象类

      1. SqlDataReader dr=Command comm.ExecuteReader();
      2. while(dr.Read())
      3. {(数据类型)dr[索引或列名]//读取某列数据}
      4. dr.Close();
    • DataSet:

      1. conn=new SqlConnection(conString);
      2. DataSet ds=new DataSet();
      3. SqlDataAdapter ad=new SqlDataAdapter("sql语句",conn);
      4. da.Fill/Update(ds);
      5. dataGridView1.DataSource=ds.Tables[0];
上传的附件 cloud_download 知识点回顾整理.docx ( 29.02kb, 6次下载 )

发送私信

4
文章数
1
评论数
最近文章
eject