大学生C#考试必看总结~

近期忙于考试,不过在C#考试的时候将学过的内容进行了归纳整理,特置于网上,供学C#的同学们学习,分享一下~如有不足之处,还望海涵。。
CLR公共语言运行时
BCL/FCL 基础类库
CTS    公共类型规范
CLS 公共语言规范 符合公共语言规范的任何语言都可以在公共语言运行库上运行
2 语法基础I
1c#代码结构
  命名空间的引入 using     类中不用使用完全限定名来引用类
  定义命名空间 namespace
 定义类  class
  main方法 static (在和实例对象之前)
2Console (实现控制台的i/o System命名空间(所有命名空间的根
  读取单个字符或整行
  将值类型的实例、字符数组、对象集自动转换为字符串,写入控制台
   ReabLine()等待输入字符,直到按回车键为止
   ReadKey()
3、变量 —— 代表存储地址,类型决定存储在变量中的熟知的类型。
       在一个命令行中,类型不同的变量赋值不能同时赋值,必须分开两行。
  1. 变量名必须字母开头
  1. 字母、数字、下划线
  1. 不能和关键字、命名空间、类库名称相同、
int a=1//初始化
int a
a=1//赋值
作用域——访问该变量的代码区域(字段、局部变量)
      字段_——类中(不是类中的方法和属性中) 整个类
      局部变量——独立的语句块                定义开始到离开语句块
      同名的局部变量会隐藏同名的类及变量。
4、常量
  值在使用过程中不会发生变化
  关键字 const
  必须声明时初始化,其后不能再修改。而变量的值可以重新修改。
  默认为 static 但定义时不需要声明为static
  不能用变量的值进行初始化。
  只读字段可以用变量的值进行初始化。类级别声明初始化,只能为静态字段
  int d=1
  readonly static int a=d
5、预定义数据类型(通过GetType方法获取变量的数据类型)
   值类型: 整型(有符号:sbyte short int long 无符号:byte ushort uint ulong )默认为Int32
                      long a=124;先赋值,再转换为long类型
                      long b=124L;赋值之前已经将124强制转换为long类型
  (栈)  浮点型(预设是double类型,如果想设为float,可加Ff
                       字符型(一个16Unicode字符单引号)‘a’‘\u0041’‘\x0041(char)65
                            bool
                            decimal型(128位高精度浮点数 Mm
                            日期型(DateTime
                            转义字符 \0 \a警告 \b 退格 \f换页 \n 换行 \t 水平制表符
                  “\’hello\’”
@”’hello’”
3 语法基础II
4 类型转换
  1、隐式转换(扩展转换):窄数据类型转换为宽数据类型,且能保证转换过程中不丢失数据
         1 系统默认,不需要加以声明就能转换
         2)编译器自动执行
         3)整数和浮点数之间转换可能会丢失数据long/ulong转换为float会丢4个字节
         4 不存在浮点型与decimal之间的隐式转换         
     (5)不存在到char类型的隐式转换
  2、显示转换(强制类型转换):
           1)数值类型只能在数字、char类型和enum类型之间转换
           2Boolean数据类型不支持转换
           3所有类型都可以通过ToString()方法转换为字符串
           4Convet类的相应方法将字符串转换为相应的数据类型
  3、装箱:(可以隐式进行)
        值类型转换为引用类型
  4、拆箱:(必须显示)
        引用类型转换为值类型
        装什么,拆什么(不仅装数值还要装类型)
  5、枚举类型:
       1 访问修饰符 enum 枚举名:基础类型(显示声明,默认为int
         {
             枚举成员1
             枚举成员2(该枚举类型的命名常数不能重名)必须在基础类型范围内
             第一个枚举成员的默认值为零,以后依次加一允许多个枚举成员有相同的值,没有赋值的前一个加一
        }
2System.Enum类型(本身不是枚举类型,是一个类类型,所有枚举类型都是从它派生的)是所有枚举类型的抽象基类,从他继承来的成员在任何枚举类型中都可用。
3)枚举类型不能隐式转换为基本类型,基本类型也不能隐式转换为枚举类型。
  (4) 枚举名.枚举成员
5 流程控制
     1、条件语句
                                     If单一
                                     If/else二选一
                                     If/else/if多选一
         2、分支语句
                                     Switchint/char/string 表达式)
                                     {
                                               case 常量表达式1
                                                   语句1
                                                        break
                                               case 常量表达式2
                                                   语句2
                                                        break
                                               defult
                                                        break
 
                                     }
         3、循环语句
                            for
                            foreach  针对集合和数组 尤其不知道有多少元素的
                            while
                            do/while 循环至少一次
         4、跳转控制语句
                            break 中断循环,跳出循环体
                            continue 继续下一次循环
                            return  退出方法
                            goto  无条件转移语句
6   数组   System.Array:所有数组的基类
数组作用 :保存一系列数据类型相同的数据
 引用类型,存放在堆内存中
  1. 一维数组:
数组类型[ ] 数组名
定义数组后,必须对其进行初始化才能使用。用下标引用或修改数组中的元素值
                   动态初始化,使用new
                            数据类型【】 数组名=new 数据类型【n {元素值0,元素值1,。。。,元素值n-1}此时可以省略“数组长度”。数组长度不能用变量,只能是整形常量。也可不给出初始值部分。
和静态初始化(这种情况下不能将数组定义和静态初始化分开)
 数据类型【】 数组名={元素值0,元素值1,。。。,元素值n-1}
  1. 二维数组
数据类型【,】 数组名;
                   3、多维数组
                   4、锯齿数组(交错数组)数组中的数组
                                     必须赋行数,必须不赋列数
                   5Array
                                     CreateInstance方法来创建数组
                                     Array obj=Array.CreateInstance(typeof(string),10);
                                     Sort()
                                     Reverse()
                                     IndexOf()
                                     LastIndexOf()
                                     SetValue()
                                     GetValue()
                                     CopyTo()
                                     Copy()
                                     Clear()
                                     GetLength()
                                     GetUpperBound()
                                     GetLowerBound
7 运算符与表达式
1、单目运算符
逻辑非(!)自增(++)自减(——)
双目运算符
算术运算符(+*/% 逻辑运算符(&& || 字符串连接运算符(+
三目运算符
赋值运算符(从右向左赋值)
算术运算符
           加法减法运算符
           自增自减运算符
           乘法除法运算符
           取余运算符
关系运算符
逻辑运算符
条件运算符
is判断是否是某个类型
as引用类型的显示类型转换
new 创建类类型(objectclassstring)数值类型、数组类型和代理类型的实例(即变量)
  1. typeof获得指定类型System.Type对象
8 集合与范式
 1、非泛型集合
将成员存储为Object类型的实例,可以存储任何类型的元素,同时会增加装箱拆箱的性能开销。
命名空间:System.Collections
ArrayList类——动态数组 Add AddRange Remove RemoveAt
 Hashtable类——哈希表 名值对(类似于字典)Add Keys  Key  Value
Stack类——堆栈 后进先出Push 入栈 Pop出栈 Peek弹出最后一项不删除
Queue类——队列 先进先出 Enqueue 入队 Dequeue出队  Peek弹出最后一项不删除
泛型集合
命名空间:System.Collections.Generic
泛型可以存储任何类型的元素,同时类型安全,又省去装箱拆箱的性能开销。
List<T>
Dictionary<K,V>
Stack<T>
Queue<T>
  
10 类和方法
所有的类都继承于System.Object;
类的成员数据成员:常量、字段
函数成员:方法、属性(被封装的字段)、索性器、事件、构造函数、析构函数
方法访问修饰符:public internal(只可以被本程序集内所有类访问) protected private(默认)
类访问修饰符:public internal(默认)(只可以被本程序集内所有类访问) protected private
方法参数:值参数。引用型参数ref。输出参数out。数组型参数params
方法重载
成员变量和局部变量的区别
对象的生命周期
11 属性和索引器
字段(其实就是一个变量):
域或成员变量(在类成员中,用于存储属性值),实现数据的传递功能。private
字段和常量作为数据成员(字段和常量和事件)可以直接被访问,而属性不能直接进行访问,必须通过访问器set get属性是对字段的封装,字段的延伸,是类对外的特性。
public
  访问修饰符 数据类型 属性名
   静态属性:应用于整个类而不是类的实例,只能访问类的静态成员
  访问修饰符 static 数据类型 属性名
 
索引器:访问修饰符 数据类型 this【数据类型 标识符】,只能用于类的实例,不能再类上直接使用。
             对他们的访问是通过其所属对象进行的,必须用this
             不能是静态,参数只能是传值类型,也可多态。
             静态成员:静态数据成员变量,静态成员方法
12章继承和多态
继承:(不允许多继承)class 父类名称{}
虚方法(可以由子类重写的方法):访问修饰符 virtual 方法返回类型 方法名()
class 子类名称:父类名称{}
重写父类方法访问修饰符 override 方法返回类型 方法名()
base :       挂接父类的构造函数签名,代表将数据传递到父类构造函数(调用);提供对父类的访问;
静态成员函数中不能使用base
静态成员为该类及子类所共有;
成员变量、方法的隐藏:new
密封类:
sealed 不能做基类,不能是抽象类(为了派生子类),为了防止派生
密封方法:
防止派生中子类重写该方法;
 
多态:
 同一实现接口,使用不同的实例而执行不同的操作;
 使用虚函数实现动态多态:
父类引用指向子类对象;
子类重写父类虚方法;
父类引用调用被重写的方法;
13 抽象类和接口
抽象类:public abstract class MyClass{}
在不需要创建父类对象,而且父类中某些方法不需要有方法体时就用抽象类和抽象方法即可;
抽象类不能创建对象;
方法和属性都没有具体实现,使用override重写方法和属性
专门用于派生子类子类必须重写抽象方法 override,否则,子类仍是抽象类;
抽象方法:
         public abstract void MtMethod();
不能定义为private,因为要被子类所重写,可以定为protected
方法体不能有实现代码;
包含抽象方法的一定是抽象类,但抽象类中的方法不一定是抽象方法
接口:(“纯”的抽象类)方法特征的集合
public interface IFly() 允许多继承;
不允许包含字段
所有的方法默认都是public abstract不允许加访问修饰符
 实现接口的类,不需要标注override,访问修饰符必须是public
14 异常处理
                            System.Exception
                 异常:在程序运行过程中所发生的不正常的事件,中断程序的运行。
                            错误:语法错误、逻辑错误、运行时错误
                            处理异常:try catch finally throw
                            自定义异常:继承于ApplicationException
15 文件操作
                            System.IO
Directory :Exists()  CreateDirectory() Move() Delete()
DirectoryInfo: Exists Creat()   MoveTo()   Delete()



以上是做了一个整体的总结,之后将放上部分章节的内容


  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值