您的位置:首页 > 编程语言 > C#

C#.Net 知识基础

2015-01-23 16:45 106 查看
1、什么是.Net框架

2、什么是CLR、CLI、IL、JIT,它们是如何工作的?

3、什么是GC,简述其工作方式。

4、类(class)和结构体(struct)的区别?它们对性能有什么影响?.Net BCL里面有哪些是类(结构)?为什么它们不是结构(类)?在自定义类型时,如何选择类还是结构?

5、在.Net程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上面分配数据?它们在性能上有什么区别?“结构”对象可能分配在堆上吗?什么情况下会发生,需要注意什么?

6、泛型的作用是什么?它有什么优势?它对性能有影响吗?它在执行时的行为是什么?在.Net BCL中有哪些泛型类型?举例说明你平时编程中定义的泛型类型。

7、拆箱与装箱的概念。

8、异常的作用是什么?BCL中有哪些常见的异常?在代码中你是如何捕获和处理异常的?在catch(ex)中,"throw"和"throw ex"有什么区别?你会如何设计异常的结构,什么情况下你会抛出异常?throw与try...cath的使用。

(简单地说,如果在一个方法中使用了throw,那么这个方法会向上抛出一个异常,那么在调用这个方法的时候必须放在try...catch块里面处理这个异常。)

9、List<T>和T[]的区别是什么?你平常是如何选择的?Dictionary<TKey,TValue>是做什么的?.Net BCL中还有哪些常见的容器?它们分别是如何实现的(哪种数据结构)?分别适用于哪种场景?

10、抽象类和和接口有什么区别?使用时有什么需要注意的吗?如何选择是实现“完全抽象”的抽象类,还是接口?什么是接口的“显式实现”?为什么说它很重要?

11、字符串是引用类型还是结构类型?它和普通的结构类型相比有什么特殊的地方吗?使用字符串有什么需要注意的地方?为什么说StringBuilder比较高效?在连接多个字符串时,它无论何时都比直接相加高效吗?

12、如何高效地进行数组复制?“二维数组”和“数组的数组”有什么区别?在使用双重循环遍历二维数组时,如何选择内外层的循环顺序?

13、什么是元编程?.Net有哪些元编程的手段和场景?什么是反射?能否举一些反射的常用场景?有人说反射性能较差,你如何看待这个问题?有什么办法提高反射的性能?

14、委托是什么?匿名方法是什么?在C#3.0中,Lamda的表达式是什么?扩展方法是什么?LINQ是什么?你觉得C#3.0还有哪些重要的特性?他们带来了什么优势?BCL中哪些类库与这些特性有关?你平常最常用哪些?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: