C#面试题(设计模式在背面)2
const 和 readonly 有什么区别
答:const 可以用于类的组员常量和局部常量,必须在申明时赋值,之后不可以对常量进行赋值
而 readonly 只能用于类的组员变量不能用于局部变量,在申明时可以不赋值,除了在构造函数中可以再次赋值外,其他的地方和 const 同样也不能赋值
接口和抽象类有什么区别
你选择使用接口和抽象类的根据是什么
答答:区别如下(1) 抽象类可以有抽象组员(无详细实现),也可以有非抽象组员(有详细实现);接口只有抽象组员
(2) 一种类不能同步继承多种抽象类,一种类可以同步实现多种接口
假如多种子类中有诸多代码是反复的,这时采用抽象类,由于可以将这些代码放到抽象类的非抽象措施中,这样可以达到代码复用
当实现多种接口时由于抽象类不支持,只能使用接口
struct 和 class 有什么区别答:两者都可以有组员变量、属性、索引器、事件、函数、构造函数,重要区别如下:区别点 构造 类类型 值类型 引用类型组员变量 在申明时不能赋值 可以赋值也可以不赋值构造函数 可以不写,系统提供默认构造函数,默认构造函数中会将所有组员值设为 0,假如写了构造函数则构造函数必须有参数,且在构造函数中必须为每一种组员赋值
可以不写,系统提供默认构造函数,写了也没有构造中的限制
析构函数 不能有析构函数 可以有析构函数继承性 自定义的构造不能从类继承,但可以实现接口,构造都是密封(sealed),不能从构造继承 类没有限制7
try 背面一种 finally,try 中有一种 return,那么 finally 中的代码会不会运行
假如运行,是在 return 后还是 return 前
答:会运行,并且在 return 后运行
产生一种 int 数组,长度为 100,并向其中随机插入 1-100,并且不能反复