有没有理由.Net Windows程序员需要再学习C或C++了?

ajl*_*ajl 19 .net c c++

有人可以描述一下C或C++程序员在开发Windows时对.Net编程有什么好处吗?

Ken*_*nky 29

有一种说法是,每个足够复杂的C应用程序最终都会重新实现C++的部分内容.C++程序和更高级的语言也是如此.学习C和C++将通过帮助您更深入地了解.Net实际如何工作以及设计师为何做出选择来间接地使您成为更好的程序员.

一个程序员只有他对他下面层的理解一样好..Net可以很好地抽象出很多机器架构问题,但它并不完美.抽象层中仍然存在泄漏,对较低级别问题的理解将帮助您在.Net层做出正确的决策.

这些问题的简短不完整列表包括:

  1. 与本机代码互操作,尤其是使用Windows API
  2. CPU缓存一致性(如果你不相信我,请从PDC '09的PLINQ演示文稿中获取幻灯片)
  3. 值类型性能与参考类型性能(这在.Net世界中非常有效,但学习C/C++会使堆栈和堆分配之间的差异在某些方面更加明确).
  4. 内核调度问题(即为什么分拆1000个线程是个坏主意)
  5. 通过在非垃圾收集语言中编写一些内存管理方案,也可以最好地实现对垃圾收集器的理解.

  • 为此+1:"程序员只有他对他下面层的理解一样好." 我喜欢. (7认同)

SLa*_*aks 10

您应该学习足够的C以熟悉本机Windows API,因为它在编写复杂的UI和与系统交互时非常方便.

  • 我不知道c或c ++,但我发现它很容易在Msdn上查找函数Win32 API函数定义并从.NET代码中使用它们. (4认同)
  • 你真的不需要知道C或C++,只是如何在API签名的数据类型之间进行转换.... (3认同)
  • 是的,但是如果你不想泄漏内存,你需要了解C的内存模型. (2认同)