有时,可能需要检测.NET Core应用程序当前在哪个操作系统上运行。OSPlatform结构描述了各种操作系统平台,它定义了三个静态属性:

OSPlatform.Windows
OSPlatform.OSX
OSPlatform.Linux
使用命名空间中的RuntimeInformation类System.Runtime.InteropServices,我们可以检查特定的操作系统:

if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
{
    Console.WriteLine("We're on macOS!");
}


上面的代码工作和读取都很好,但是我们可以更进一步,编写一个带有三种静态方法的辅助类来检测Windows,macOS和Linux:

using System.Runtime.InteropServices;

public static class OperatingSystem
{
    public static bool IsWindows() =>
        RuntimeInformation.IsOSPlatform(OSPlatform.Windows);

    public static bool IsMacOS() =>
        RuntimeInformation.IsOSPlatform(OSPlatform.OSX);

    public static bool IsLinux() =>
        RuntimeInformation.IsOSPlatform(OSPlatform.Linux);
}


这样,我们可以提高平台检查的可读性,同时使代码更加简洁。现在,它几乎就像一个恰当的英语句子:

if (OperatingSystem.IsMacOS())
{
    Console.WriteLine("We're on macOS!");
}

 

暂无评论