代码之家  ›  专栏  ›  技术社区  ›  SoulSystem

(C#)如何编写适用于不同操作系统的不同代码?

  •  -1
  • SoulSystem  · 技术社区  · 2 年前

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

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

    所以我想为每个操作系统制作一个不同的代码
    就像下面的代码

    if(isWindows)
    {
        Console.Write("Hello World\r\n");
    }
    else
    {
        Console.Write("Hello World\n");
    }
    

    如果你知道一个好方法,请告诉我!

    1 回复  |  直到 2 年前
        1
  •  6
  •   MFasseur    2 年前

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

    Console.Write("Hello World" + System.Environment.NewLine);
    

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

    • FreeBSD
    • Linux
    • OSX
    • 窗户

    您的代码如下所示:

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