C#面试知识

C#知识点总结:

  1. C#的数据类型有:
    值类型-在栈中分配内存,初始化才能使用,不能为null值类型
    引用类型-在堆中分配内存,初始化默认为null
    C#面试知识_第1张图片

  2. C#装箱操作是将值类型转化为引用类型或是值类型所实现的任何接口类型的隐式转化,在堆中分配一个对象实例,并将此值复制到新的对象中

  3. 异常类对象均为System.Exception类的对象

  4. 对象可以直接赋值的属性为public,protected不可以

  5. 类只能单继承,接口可以多实现

  6. 委托的实例是对象,委托-方法作为方法的参数

  7. 面向对象的5个基本原则:单一职责原则(SRP),开放封闭原则(OCP),里式替换原则(LSP),依赖倒置原则(DIP),接口隔离原则(ISP)

  8. 一维数组:int [] numbers;
    多维数组(矩形数组):string [ , ] names;
    数组的数组(交错的):byte [][] scores;
    int[][] array=new int[3][]{new int[4]{1,2,3,4},new int[2]{1,2},new int[1]{1}}
    集合和数组的区别:
    集合:长度是无限的
    count—>获取集合中实际包含的数据个数
    capacity—>集合中可以包含的数据个数
    数组:长度在定义时要给定

  9. 1)C#接口可以实现多继承,接口的成员不能有public、protected、internal、private等修饰符,因为接口里面的方法需要外面接口去实现里面的方法体
    2)接口不能有new、static、abstract、override、virtual修饰符
    3)接口没有构造函数,所有不能直接使用new对接口进行实例化。

  10. ASP中Session对象默认有效期为20min

  11. out、ref都是引用传递,传递后使用都会改变原有的值,引用传递都需要显示传递到方法。ref有进有出,即能将参数传进去,函数里对变量的改变在函数结束时会改变值,因此需要在传递进去前初始化。out只出不进,即将参数传进去时值是无效的,out会把参数清空,所以无法将一个值从 out 传递进去。
    out参数侧重于在函数中返回多个值。out参数在函数内部必须进行赋值,函数外进行输出即可。

  12. 索引器没有名字,以函数形式标识,允许重载,索引器的参数可以采用任何类型

public string this [int index] 
{ 
       get {return "当前索引号为:" + index; } 
}  

13.将对象输出在控制台上,则输出对象所在的命名空间
ArrayList类,集合:没有长度限制,没有类型限制;
若要输出对象或数组的具体数据,则(里式转化)判断list[i]是否是类或数组(int []),若是,则转化为类,再输出数据。
14.非泛型集合:每个集合中添加的数据类型不一致
ArrayList list=new ArrayList(); –list.Add(object o);中间可能发生装箱
Hashtable键值对集合
泛型集合:每个集合中添加的数据类型是一致的
List
Dictionary

你可能感兴趣的:(C#)