.NET程序员必须成为一名优秀的程序员才能获得CLR的最低知识?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (32)

当我们谈论.NET世界时,CLR就是我们所做的一切所依赖的。.NET程序员必须成为一名优秀的程序员才能获得CLR的最低知识?你能给我一/你认为是/最重要的主题:GC?,AppDomain?,Threads?,Processes?,Assemblies / Fusion?

如果您发布文章,博客,书籍或其他可以找到更多信息的主题的链接,我将非常感激。

我从一些评论中注意到我的问题对某些人来说并不清楚。当我说CLR时,我不是指.Net Framework。这不是关于记忆.NET库,而是要了解执行环境(这些库在运行时所处的环境)是如何工作的。

我的问题直接受到了“调试Microsoft®.NET应用程序”一书(我推荐)和这里的同事在Wintellect中引用Jeffrey Richter的作者John Robbins的启发。在其中一篇介绍性章节中,他说:“......任何.NET程序员都应该知道什么是探测以及如何将程序集加载到运行时”。你认为还有其他这样的事情吗?

在阅读“通过C#CLR”的前5章之后,我必须对任何阅读此内容的人说。如果你还没有准备好,请阅读本书!

提问于
用户回答回答于

其中大部分都比许多开发人员在我的经验中遇到的情况要深刻得多。我的经历中大部分被误解(并且是重要的)方面:

  • 值类型与参考类型
  • 变量与对象
  • 通过裁判传球vs传递价值
  • 代表和活动
  • 区分语言,运行时和框架
  • Boxing
  • 垃圾收集

在“变量vs对象”前面,这里是关于代码的三个陈述

string x = "hello";
  • (非常糟糕)x是一个包含5个字母的字符串
  • (略好)x是对5个字母的字符串的引用
  • (正确)该值x是对包含5个字母的字符串的引用

很明显,前两个在“随意”对话中是可以的,但前提是每个人都了解真实情况。

用户回答回答于

通过Jeffrey Richter的C#阅读CLR书的相关部分。本书可以作为很好的参考。

扫码关注云+社区