C#程序可以跨平台吗?

mow*_*ker 24 c# cross-platform

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

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

Jus*_*ier 20

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

  • 有时Mono领先于MS.NET运行时; 这真的取决于功能.例如,早在微软发布.NET 4的RC之前,Mono的beta版本就支持C#4的`dynamic`关键字. (7认同)

Ach*_*him 8

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

  • "只要你在每个目标平台上都有一个编译器" - 这不完全正确.Microsoft编译器的输出可以在Mono上运行,Mono编译器的输出可以在Windows上运行. (6认同)

Cre*_*nix 6

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

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

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

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

Java的 -一次代码,船舶同一个文件到所有平台

C ++,C,Rust-只需编写一次代码,即可针对特定平台进行编译

C# -这只是一种语言,请根据需要选择您的框架。

最流行的应用程序,例如Chrome,Firefox,使用C ++,Rust,并且针对每个平台进行编译。但是它们仍然在这些平台之间共享大多数代码。有些游戏使用C ++在IOS和Android之间共享代码。

对于新开发人员来说,最好从NodeJS和C#开始。两者都很容易并且可以执行任何类型的应用程序。


tyl*_*ell 5

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

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