.NET(C#) 程序员常见面试问题 !

.NET(C#) 程序员常见面试问题 !

  1. 什么是.NET?什么是CLI?什么是CLR?IL是什么?
  2. JIT是什么,它是如何工作的?
  3. GC是什么,简述一下GC的工作方式?
  4. 类(class)和结构(struct)的区别是什么?它们对性能有影响吗?
    .NET BCL里有哪些是类(结构),为什么它们不是结构(类)?在自定义类型时,您如何选择是类还是结构?
  5. 在.NET程序运行过程中,什么是堆,什么是栈?什么情况下会在堆(栈)上分配数据?它们有性能上的区别吗?
  6. “结构”对象可能分配在堆上吗?什么情况下会发生,有什么需要注意的吗?
  7. 泛型的作用是什么?它有什么优势?它对性能有影响吗?它在执行时的行为是什么?.NET
    BCL中有哪些泛型类型?举例说明平时编程中您定义的泛型类型。
  8. 异常的作用是什么?.NET BCL中有哪些常见的异常?在代码中您是如何捕获/处理异常的?
  9. 在“catch(ex)”中,“throw”和“throw ex”有什么区别?您会如何设计异常的结构,什么情况下您会抛出异常?
  10. List<T>和T[]的区别是什么,平时你如何进行选择?
  11. Dictionary<TKey, TValue>是做什么的?
  12. .NET BCL中还有哪些常用的容器?它们分别是如何实现的(哪种数据结构)?分别是适用于哪些场景?
  13. 抽象类和接口有什么区别?使用时有什么需要注意的吗?如何选择是定义一个“完全抽象”的抽象类,还是接口?什么是接口的“显式实现”?为什么说它很重要?
  14. 字符串是引用类型类型还是结构类型?它和普通的引用类型相比有什么特别的地方吗?使用字符串时有什么需要注意的地方?
  15. 为什么说StringBuilder比较高效?在连接多个字符串时,它无论何时都比直接相加更高效吗?
  16. 如何高效地进行数组复制?“二维数组”和“数组的数组”有什么区别?
  17. 在使用双重循环遍历一个二维数组时,如何选择内外层的遍历顺序?
  18. 什么是元编程,.NET有哪些元编程的手段和场景?
  19. 什么是反射?能否举一些反射的常用场景?有人说反射性能较差,您怎么看待这个问题?有什么办法可以提高反射的性能吗?
  20. 委托是什么?
  21. 匿名方法是什么?
  22. 在C# 3.0中,Lambda表达式是什么?
    扩展方法是什么?
    LINQ是什么?
    您觉得C# 3.0中还有哪些重要的特性,它们带来了什么优势?
  23. BCL中哪些类库和这些特性有关?您平时最常用哪些?
  24. 工作之外您看哪些技术相关的书、网站、社区、项目等等?
    您还接触哪些.NET以外的技术,能和.NET或.NET中有针对性的部分做个对比吗?
  25. ASP.NET及Web基础(更主要是协议和理念相关)

参考链接:
[.NET Framework] www.microsoft.com/net
[ASP.NET] www.asp.net/
[汇总最全的C#.NET面试题及参考答案] www.lanhusoft.com/Article/209.html

官方学习资料
[C# 参考] (Visual Studio 2015) msdn.microsoft.com/zh-cn/library/618ayhy6.aspx
[C# 编程指南](Visual Studio 2015) msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx

update:
[New Language Features in C# 6] github.com/dotnet/roslyn/wiki/New-Language-Features-in-C#-6
[C# 6.0 语言预览版] msdn.microsoft.com/magazine/dn683793.aspx
[New features of C# 7.0] msdn.microsoft.com/zh-cn/magazine/mt595758.aspx
[New features of C# 7.0] www.c-sharpcorner.com/article/all-about-C-Sharp-7-features/
[New features of C# 7.0] channel9.msdn.com/Events/Build/2016/B889

点赞