C#程序可以跨平台吗?

时间:2011-08-07 19:25:16

标签: c# cross-platform

我是编程的新手,我正在考虑使用C#编写一个非常简单的程序,只需编辑一个文本文件。

  • 它适用于Mac和Linux吗?什么会起作用?
  • 我想知道什么使程序跨平台?

10 个答案:

答案 0 :(得分:20)

是的,感谢Mono项目,C#是跨平台的。但请记住,这是第三方实现,而不是来自Microsoft。因此,最新的.NET运行时或C#语言版本的任何前沿功能都可能无法实现。

答案 1 :(得分:7)

对某些人来说很难回答这样的事情,他说他只是开始编程,但我会尝试给你一个(有点简化)的概述:C#是一种语言,它被编译成一个可执行程序。只要在每个目标平台上都有编译器,语言本身就可以在平台之间移植。在Windows上,您有“默认”.Net实现,在Linux / Mac上,您有Mono。要做一些有用的事情 - 比如编辑文件 - 你必须使用一些库。每个平台都有一个标准库。只要您只使用该功能,您的程序就会变成平台。显然,只要您使用某个特定于某个平台的库,就不会跨平台。编辑文件是标准库的一部分,因此您可以以交叉平台的方式实现这些简单的工具。选择一本书时,你应该寻找专注于“原始”语言而不是Visual Studio或其他特定工具的书籍。

答案 2 :(得分:6)

现在C#是完全跨平台的,具有各种框架和运行时间。

Java是一种语言+框架。但C#只是一种现代语言。 C#语言功能非常强大,易学。框架和语言之间没有混淆。

C#可以在以下框架中使用

  • .Net核心(多平台支持Linux,Windows和Mac),主要用于开发休息服务,Web应用程序和企业系统
  • .Net Framework(仅限Windows),与.net核心相同,但具有更多仅限Windows的功能
  • Unity - 用于开发PC,索尼,Xbox设备等游戏的最常用游戏引擎之一。
  • Xamarin - 开发原生移动应用程序(Android,IOS,Mac)
  • .Net标准 - 在所有上述应用程序中使用.net标准创建库

Java - 代码一次,将同一文件发送到所有平台

C ++,C,Rust - 代码一次,针对特定平台进行编译

C# - 它只是一种语言,根据要求选择框架。

Chrome,Firefox等大多数热门应用程序都使用C ++,Rust,它们是针对每个平台编译的。但他们仍然在这些平台之间共享大部分代码。有些游戏使用C ++在IOS和Android之间共享代码。

对于新开发者来说,从NodeJS和C#开始是件好事。两者都很简单,可以做任何类型的应用程序。

答案 3 :(得分:5)

来自Microsoft的一个名为CoreCLR的新开源版本是跨平台的,现在可用于此

  

CoreCLR repo包含.NET Core的完整运行时实现。它包括RyuJIT,.NET GC,本地互操作和许多其他组件。它是跨平台的,正在进行多个OS和CPU端口。     - from the CoreCLR repo

答案 4 :(得分:3)

我不建议将c#作为多平台编码的首选。我建议使用python,它甚至可以作为脚本运行,并且可以在所有平台上完美运行。如果你坚持c#准备处理Justin Ethier解释的同样问题。另一方面,Python对所有平台来说都是一样的,它超级强大,甚至包装准备连接到其他语言。

答案 5 :(得分:2)

Mono项目wiki上的

This article总结了如何使用C#编写可移植应用程序。

答案 6 :(得分:1)

C#是跨平台的,你可以在Windows / Linux和Mac上运行你的程序。但是对于Linux,您需要运行它using mono

答案 7 :(得分:1)

如果你是新手并且不坚持使用C#,那么试试Java,它离C#语法不远,并且正在运行

AppBar

与Mac / Linux / Win相同。

答案 8 :(得分:1)

由于.NET Core,C#是跨平台的,但是如果没有跨平台的用户界面库,则只能使用它制作非常基本的控制台程序。为了制作适用于Windows,Mac和Linux的跨平台应用程序,您需要一个跨平台的用户界面库,例如Nevron Open Vision

答案 9 :(得分:0)

是的,由于.NET Core,C#完全跨平台。 .NET Core是适用于Windows,Linux和macOS操作系统的免费和开放源代码的托管计算机软件框架。它是仅在Windows上运行的.NET Framework的跨平台继承者。该项目主要由Microsoft(通过.NET Foundation)开发和支持。