适用于旧版VC ++ 6.0开发人员的.NET

时间:2009-06-02 21:07:46

标签: .net c++-cli

为传统VC ++ 6.0开发人员学习.NET的最佳书籍/方法是什么?由于各种原因,我对学习C#或VB.NET等新语言犹豫不决。我在C ++ / Win32编程方面经验丰富。我更倾向于学习C ++ / CLI来获得.NET开发经验。这是一个好方法吗?你做了什么让.NET暴跌?你必须学习C#或VB吗?我也打算为此获得以下一本书。任何想法/想法?

  1. http://www.amazon.com/reader/1430210532?encoding=UTF8&ref=sib_dp_bod_toc&page=5#reader
  2. http://www.amazon.com/Foundations-CLI-Visual-Language-Experts/dp/1430210230/ref=pd_bxgy_b_text_b

4 个答案:

答案 0 :(得分:3)

如果你想在程序中使用.NET,你可能最好不要学习C#。通过宏和自定义运算符定义,C ++ / CLI确实是一种全新的语言。

C ++ / CLI最适用于C#/ pinvoke无法处理的本机库互操作场景。

关于从C ++过渡到C#的一些有趣的事情:

  1. 这是托管代码,所以你没有 删除你的指针。
  2. 在C ++中,您可以选择在堆栈上或堆上实例化类型,具体取决于您声明类型的方式。在C#中,是否在堆栈或堆上实例化类型取决于类型本身,而不是如何声明它:如果类型派生自ValueType,则运行时将实例化堆栈上的类型。如果类型不是从ValueType派生的,则运行时会实例化堆上的类型。
  3. 在C ++中,结构和类是类似的,区别仅在于成员的默认可见性(默认情况下,结构是公共的,默认情况下类是私有的)。在C#中,struct是ValueType并且具有特殊规则,例如没有继承。
  4. 在C ++中,你有多重继承;在C#中,您具有单继承和从接口继承的能力。 C#中的接口(基本上)是C ++中的纯抽象类型。
  5. 还有更多,但这些是一些常见的陷阱。这是a good article的更多信息。

答案 1 :(得分:3)

不要害怕C#。作为一名前C ++程序员(我认为你会发现大多数情况都是如此),我发现转换到C#非常舒服。您的思维方式(如果您愿意)只需进行一些修改即可完美转化。这种语言存在一些怪癖,但是当我们从C#1转到C#3时,事情已经变得更接近C ++开发人员对世界的看法(例如泛型)。我会查看virtual labs on C#。它们相当不错,让您快速掌握语言。

答案 2 :(得分:0)

使C#比C ++中的Win32编程更容易学习的一个好处是类型检查非常强大 - 远远超过C ++。因此,一旦编译器可以调用带有一堆参数的东西,你知道它们是正确的类型。 对于Win32来说,这对我来说是一场艰苦的斗争,不用重复那场斗争就好了。

答案 3 :(得分:0)

我认为你正在考虑的书不是很好......他们试图掩盖太多,我认为不会有太多用处。

有一本简短易用的书“C#Text Manipulation Handbook”,它将让您习惯该语言的基本语法,并教您一些有用的字符串处理库,您将反复使用它们。然后你应该拿一本教授最新语言功能的书,这些功能通常由LINQ上的书籍(如LINQ in Action)所涵盖。这两本书都很短,但却很好。

之后,您将需要获取特定于特定应用程序类型的书籍(WPF,WinForms,ASP.NET等)。这应包括使用ADO.NET从该应用程序类型访问数据库。

我每5年进行一次C / C ++ Win32开发,此时我甚至都没想过要回去。使用.Net平台我可以做得更多。