详细了解.NET的工作原理

我刚刚接受了快速电话采访。 面试官问我几个问题:

  • C#是如何工作的?
  • 什么是CLR,它有什么作用?
  • 什么是C#代码转换为?

除了CLR问题(我给出了一个非常含糊的答案),我不知道答案。 还有一些我不记得的与.NET有关的其他内容,但我也不知道那些答案。

我承认我的知识更高层次,但我觉得我对.NET的工作方式有基本的把握。 无论哪种方式,我接受了第二次采访,但在我下次采访之前,他说我“需要了解.NET的工作原理”。

那么……我不确定该怎么做……有什么建议吗?

我想我还应该提一下,我已经大学gradle2年了,从那时起我一直在专业地工作,构建ASP.NET Web应用程序。 在此之前,我没有.NET经验。

维基百科上的这篇文章可以让您对这3个问题有一个很好的了解: .NET Framework

替代文字

我推荐CLR来自C# ,这本书很好展示了C#代码如何在“引擎盖下”工作。

一次一个问题……

C#是如何工作的?

我会问面试官他到底意味着什么 – 他是否想要C#的function,如属性 , 事件或代表 ? 他想知道人们如何为C#开发? 他想要与C / C ++进行比较吗? 这是一个模糊的问题,有许多可能的答案。

什么是CLR,它有什么作用?

公共语言运行时是负责执行.NET字节代码的虚拟机(在CIL中)。 它与Java的JVM相当。

什么是C#代码转换为?

C#编译成通用中间语言 ,以前称为MSIL。 它是一种字节代码。 为了能够看到它并将其转换回.NET语言,您可以使用.NET Reflector之类的工具来查看CIL代码以及它在C#,VB.NET等中的外观。

我最喜欢的比喻/比喻就像有车,你不需要知道发动机是如何工作的(水泵,气缸,火花塞)……为了驾驶汽车,但如果你知道额外的详细信息它可以帮助您的驾驶更好,并能够真正理解/诊断您可能遇到的汽车问题……

您不需要了解用于编写asp.net网站的CLR,但如果您想了解CLR的内容,您可能会改变编写某些内容的方式,以使其运行更快。

MSDN有关于这些主题的参考资料,例如

http://msdn.microsoft.com/en-us/library/c5tkafs1(VS.71).aspx

如果你真的与.net合作2年,这些应该是简单的问题,

http://www.microsoft.com/learning/en/us/certification/mcts.aspx

编辑:抛出我的评论,当然不是任何一种众所周知的指导方针……只是为了讨论