首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Linux/C++程序员到C#/Windows程序员

从Linux/C++程序员到C#/Windows程序员
EN

Stack Overflow用户
提问于 2008-09-25 05:21:14
回答 7查看 4.3K关注 0票数 14

我已经专门在带有C++的Linux上写了一段时间的代码。在我目前的工作中,这是一家以C#为主要语言的视窗商店。我重新训练自己使用Visual Studio而不是emacs (主要原因是VC中的集成调试器,VC中的emacs模式有帮助),设置Cygwin (因为我不能没有shell ),并掌握托管语言的诀窍。

EN

回答 7

Stack Overflow用户

发布于 2008-09-25 08:55:22

从C++切换到C#时要考虑的第一件事是,大多数情况下共享一些表面语法,但随着对.Net的深入研究,编程范例的差异会越来越大。

在开始编程之前先了解C#核心编程范例,否则您可能会陷入用C#编写C++程序的陷阱,这在很长一段时间内都不是最好的主意。要习惯的最重要的事情是:

  • 自动内存管理和垃圾回收,包括dispose模式。学习基础知识和陷阱。
  • 什么是.Net中的类、接口、结构和原语,以及它们与C++相比表现如何。
  • 事件、委托、属性、λ表达式所有这些都是来自C++的一些新概念。
  • .Net泛型和.Net中的learn数组、自定义属性、反射、异常和线程基础之间的差异,所有这些在.Net中都被大量使用,你必须学习它们的复杂性才能在Winforms和ASP.Net中使用它们effectively.
  • GUI编程(也许在WPF之后),组件,控件,数据绑定。.Net图形用户界面模型。

首先,从介绍所有这些概念的通用.Net书籍开始。首先,我推荐一本书,而不是阅读教程和文章,这样你就可以在最后对.Net有一个全面的了解。互联网上的文章可能无法做到这一点。我读过的最好的通用.Net书籍:

by Simon Robinson,Christian Nagel,Karli Watson,Jay Glynn,Morgan Skinner,Bill Evjen

其次,由于你有C++背景,而且你习惯于接近金属的工作方式,并且以接近硬件工作方式的方式思考(原始内存管理(指针、内存分配等)),我只能推荐one 一本书,该书将真正揭开.Net是什么以及它能做什么的神秘:

杰弗里·里希特的

我再怎么强调这本书对每个.Net开发人员来说都是多么的好,尤其是来自C++,同时也是我读过的最好的.Net书籍之一。这本书纯粹是一种阅读的乐趣,涵盖了以下主题:

  • .Net执行模型(从MSIL到本机代码)
  • 内存管理( .net运行时和垃圾回收器如何管理内存、堆布局、内存生成、完成、大对象类型
  • 程序集加载、反射、应用程序域
  • 等等...

<>F237

这是我最好的建议,我可以给任何人在最短的时间内成为一个专家C#开发人员。

票数 16
EN

Stack Overflow用户

发布于 2008-09-25 05:30:17

既然您已经知道如何在C++中编程,请查看:

A Programmers Introduction to C# 2.0”,作者: Eric Gunnerson和Nick Wienholt

语言参考和一般.net信息之间很好的平衡。

类似的: Don Box和Chris Sell的Essential .NET, Volume I: The Common Language Runtime

非常有趣的“幕后”网络书籍(但是是为.net版本1写的,所以可能有点过时了)。

票数 4
EN

Stack Overflow用户

发布于 2008-09-25 05:37:59

阅读有关.Net中的垃圾收集的内容。来自C++领域的人们习惯于显式的内存分配和管理。在C#中,显式内存管理实际上是不存在的。

您应该了解的另一个主题是C#泛型和C++模板之间的区别。不过,对于这个问题,我没有一个很好的链接。

根据您正在使用的产品,您可能需要从C#调用Win32 API函数。这是通过P/Invoke完成的,所以您可能也想要阅读一些关于它的内容。如果您必须实际使用http://pinvoke.net,那么对于大多数Win32 API来说,它是一个非常有用的C#声明集合。

您可能还希望至少了解COM的基础知识,因为C#/.Net应用程序经常选择/需要重用第三方供应商提供的组件,这些组件通常实现为COM组件。然而,COM是一个复杂的话题。我最喜欢的关于COM和Essential COM的书,由Don Box和Roger rimes写的Professional DCOM。我会从图书馆借这些书,因为你只需要读前几章(除非你想深入了解)。

如果您要编写客户端应用程序,则有必要对窗口、消息和消息队列有基本的了解。您将使用WPF/XAML的Winforms来完成这些工作,这两种技术在将细节与您隔离方面做得很好;然而,为了能够编写良好的代码,您需要知道幕后发生了什么。我不确定这是一本好书,但MSDN有很多信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/131589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档