如何确定我的单声道应用程序在 Mac 环境中是否为 运行?

How to determine if my mono application is run in a Mac environment?

我正在构建一个 .Net 桌面应用程序 (C#),以便在不同平台上使用单声道执行。但是代码的某些部分仅在特定的 OS 中需要 运行。

我用这个来判断OS:

"Environment.OSVersion.Platform"

//Reproducible demo code.
using System;

public class Program
{
    public static void Main()
    {
        Console.WriteLine(Environment.OSVersion); 
        Console.WriteLine(Environment.MachineName); 
        Console.WriteLine(Environment.OSVersion.Platform);

    }
}

平台解析为

Windows : Win32NT

Ubuntu : Unix

Mac : Unix

问题是Linux和Mac的冲突。 Java "os.name"中的类似命令实际上给了我macOS名称,而mono似乎没有区分Linux和Mac,至少这些命令。

如何判断执行环境是macOS?

System.Runtime.InteropServices 中有 RuntimeInformation class:

if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
    // macOS
}