2010-04-11 70 views
11

我有6年以上的C/C++经验。明天开始大学作业,我将不得不使用C#。因此,我想列出一些您认为重要的链接/资源或广泛的教程 - 简而言之,您认为值得的一切。C/C++用户简介

编码风格,最佳实践,...

(我不知道C#的环境中的任何细节,我将使用(IDE,OS,W/E),第一次会议是明天晚上) 。

(我从来没有编码前C#)

一两件事:我想使用Linux(Kubuntu的10.4)工作。非常欢迎有关Linux的IDE /环境/教程建议。

感谢您的帮助!

+7

老实说,我不会太担心它。你将不得不忘记你对内存管理的大部分了解,但它会很容易找到。 C#并不是特别难学,特别是如果你有编程经验的话。泛型可能需要一两次,但即使它们非常简单。通用集合即将成为你新的最好的朋友。 – 2010-04-11 18:19:17

+0

很好听。 :)谢谢 – 2010-04-11 18:26:12

+0

(我从来没有编码c#之前) - >真的是一个强有力的声明。在从嵌入式转向C#之前,我自己也有同样的担忧。那个时候我使用了C#作为傻瓜书。这本书很简单。 :D – Hanseh 2010-04-11 18:29:21

回答

1

目前基本上是由我猜C#开发人员,Visual Studio中80%是用c#一个编辑器。

开始下载购买/下载它。你有快速版,这是免费的,供个人使用。这只是一个简单的IDE,没有什么奇特的。 如果你有一些花钱(或可以通过大学),去一个更高级的VS版本,如专业或团队系统。两者都包括表单设计者和更先进的功能。

这么多的IDE。

我想如果你从C++到C#的最大“问题”去会在.NET框架,利用现有的功能,而不是自己做吧。当人们从C++(甚至是boost)升级到.net时,这就是我经常看到的。这个框架非常大,几乎包含了所有内容,所以每次你发现自己写了一些辅助。类不是特定于域的,如果类似的东西不存在,则在手册中查找。可能性是他们在框架中。

最后,学会使用lambda的,你会很享受他们!这是C++自身不支持的唯一有意义的事情。像增加lambda一样的所有扩展都非常复杂,并且远不那么优雅,通常不值得使用它。

+0

我认为80%太低了。 ':)'我首先看看框架的陈述。 (Lambdas,顺便说一句,将成为C++ 11的一部分。) – sbi 2010-04-11 18:54:12

1

我会用两本书开始:

  1. “C#一言以蔽之”,奥赖利(最新版涵盖了C#4)。
  2. “框架设计指南:公约,成语和可重复使用.NET库,第二版模式”,AW

Safari的联机丛书的一个30天的线索会给直到你决定他们是否可以访问两个套件你)。

最初只关注#1。当我学习C#1(而.NET 1.)时,0几个小时的“C#Essentials”我只需要一些东西来显示语法和语义,因为我已经知道如何编程。

+0

你是一个像我这样的音频思想家嗯:)“因为我已经是新的如何编程”。 感谢您的提示。可悲的是这些书很贵。提示是让他们更便宜(除了图书馆)。 – 2010-04-11 18:31:40

+1

@Ronny:“C#Essentials”,一位知识渊博的同事,这是我从C++到C#的所有经历(差不多20年)。这应该够了。请参阅此处:http://books.google.de/books?id=pbzW8VGuqrIC&printsec=frontcover&hl=zh-CN&source=gbs_v2_summary_r&cad=0。 – sbi 2010-04-11 19:01:26

+0

@Ronny:更快速地打字。 – Richard 2010-04-12 07:37:05

0

如果你能写C++,你可以写C#用很少的努力。但是C#语言是.NET开发人员的一小部分,这是.NET Framework的经验,您将在未来的一段时间内错过。基类库有一个小的公共核心和几个几乎完全不同的工具包(WinForms,ASP.NET,WPF,WSDL + WCF,Workflow Foundation),对于一个非常有经验的C#开发人员来说,可能几乎不了解这些专业中的几个。

直到你发现你的任务是什么,我们将不知道你需要熟悉哪些方面,并且不能给出很多指针。

对于各种本地Windows功能,您可能会发现在pinvoke.net上参考“Alternative Managed API”很有用。

+0

downvote的原因是什么? – 2010-04-11 19:57:56

+0

我没有投票下来。上段是全部bla。我不知道,因此我对此没有任何评论。 – 2010-04-11 22:50:51

+0

重写了第一段,因为它并不简洁。感谢您的反馈。当你知道旧的API时,pinvoke.net是最有用的,无论你是从.NET(P/Invoke)中寻找使用它们的方法,还是寻找替代的规范.NET方法来做事大部分功能。 – 2010-04-12 14:36:02