1.命名空间是起什么作用的?和程序集之间的关系
命名空间把逻辑相关的类型组织到一起,就相当于区分类型的地址。命名空间+类型名才是标识类型的唯一地址。
一个程序集可以有多个命名空间。
2.静态类是干什么的?
静态类也只是把逻辑相关的一些静态函数组织在一起,除此之外没有其他功能。功能限制就是只能包含静态成员。
3.抽象函数和接口到底选哪个?
相同点:都不能直接实例化。都是抽象的概念,设计模式的精髓就是面向抽象编程。
不同点:
1).类可以继承(实现)多个接口,但是只能继承一个抽象类
2).抽象类用于关系比较紧密的多个类,而接口就是给多个不相关的类提供通用的功能。
3).抽象类倾向于is a的关系,接口更倾向于can do的关系
4).抽象类可以包含接口不能有的东西,比如字段,实现的方法
4.struct构造函数的一些要求
不能显示的写无参构造函数
如果有有参的构造函数,必须对所有的字段进行初始化
不允许private int a = 5;
5.Dynamic c#4.0的新特性
用于简化COM组件的互操作
用于简化反射
6.关于internal
class默认是internal的
如果是internal的其他程序集可以使用吗?答案可以,使用友元程序集,但是谨慎使用。
7.类型的静态构造器
只能是无参的,默认是private的,但是不能写出来
在类型第一次使用的时候调用,允许静态字段在生命的时候初始化,在构造之前执行
静态构造器是线程安全的