C#for .NET和C#for mono是否有任何真正的区别?

时间:2011-10-14 23:09:14

标签: c# .net mono

我在考虑自学C#,但我能找到的所有书籍都是基于官方的.NET。我是一个Linux用户,所以当然我的应用程序主要运行在Mono上(尽管xplatform到.NET会很好)。一本面向.NET上的C#的书是否对Mono上的C#同样有用?

2 个答案:

答案 0 :(得分:4)

除了小虫子和不完全相同的角落案例Mono非常严格地遵循C#规范,任何关于C#语言的书都可以毫无问题地应用。

主要区别在于类库,其中某些部分并不总是在Mono和其他部分中实现,但您不应该使用它们。

例如WPF(一个用户界面库),它不存在于Mono或WinForms(旧的用户界面库)中,但在Linux下你应该使用GTK#。

因此,您应该看到您的图书准确讲述并在功能中进行选择。一些非常糟糕的书籍从如何使用visual studio开始并键入你的第一个WPF hello世界,它们显然是你不想要的C#linux程序员。

虽然mono项目包含良好的文档,但是查找是否支持某个类的好方法是浏览https://github.com/mono/mono/tree/master/mcs/class上的源代码,如果命名空间不在那里或者填充了抛出NotSupportedException的类,那么你就知道了不能用它。

如果我推荐一本书,那就是Mono: A Developer's Notebook,它针对已经编程并想要用单声道学习C#的人。

答案 1 :(得分:2)

绝大多数C#/ .Net书都适用于其他平台上的Mono / C#。它们都实现了相同的规范。 Mono Develop在其他平台上也是一个很好的选择。

当然,库中特定的任何平台都会有所不同。例如:

  • Microsoft。* namespace
  • P / Invoke to Win32 API
  • COM / COM Interop

这是关于该主题的相关主题:

Compatibility of .NET csc and Mono mcs