如何编写针对不同操作系统以不同方式工作的代码?

Sou*_*tem -1 c# platform operating-system

我正在编写文件 I/O 代码

我发现每个操作系统使用不同的换行符

所以我想编写一个对于每个操作系统都有不同工作方式的代码,
如下代码所示

if(isWindows)
{
    Console.Write("Hello World\r\n");
}
else
{
    Console.Write("Hello World\n");
}
Run Code Online (Sandbox Code Playgroud)

如果您知道好的方法请告诉我!

MFa*_*eur 6

如果您只想检查换行符,可以使用System.Environment.NewLine。对于非 Unix 平台,这将返回 \r\n;对于 Unix 平台,这将返回 \n。

Console.Write("Hello World" + System.Environment.NewLine);
Run Code Online (Sandbox Code Playgroud)

但是,如果您需要为每个操作系统实现单独的代码逻辑,则可以使用RuntimeInformation.IsOSPlatform。该方法可以识别以下平台:

  • 自由BSD
  • Linux
  • 操作系统X
  • 视窗

你的代码看起来像这样:

if (System.Runtime.InteropServices.RuntimeInformation.IsOSPlatform(System.Runtime.InteropServices.OSPlatform.Windows))
{
    Console.Write("Hello World\r\n");
}
else
{
    Console.Write("Hello World\n");
}
Run Code Online (Sandbox Code Playgroud)