1、OperatingSystem
它的主要作用是:
.查看当前程序运行在什么系统(Windows、Linux、macOS、Android 等)。
.判断系统版本号(比如 Windows 10、Android 12、macOS 13)。
.方便做兼容性判断 —— 在代码里你可以根据不同系统或版本,决定是否启用某些功能。
	
		
			| 成员名称 | 类型 | 说明(通俗易懂) | 
	
	
		
			| ServicePack | 属性 (string) | 操作系统的补丁/服务包版本,没有就返回空字符串。 | 
		
			| Platform | 属性 (PlatformID) | 系统平台类型(Windows、Linux、MacOSX 等)。 | 
		
			| Version | 属性 (Version) | 系统版本号(主版本、次版本、构建号、修订号)。 | 
		
			| VersionString | 属性 (string) | 平台 + 版本号 + 服务包的完整字符串描述。 | 
		
			| IsAndroid() | 静态方法 | 判断是否在 Android 系统运行。 | 
		
			| IsAndroidVersionAtLeast(...) | 静态方法 | 判断 Android 版本是否大于等于指定版本。 | 
		
			| IsBrowser() | 静态方法 | 判断是否在浏览器 (WASM) 运行。 | 
		
			| IsFreeBSD() | 静态方法 | 判断是否在 FreeBSD 系统运行。 | 
		
			| IsFreeBSDVersionAtLeast(...) | 静态方法 | 判断 FreeBSD 版本是否大于等于指定版本。 | 
		
			| IsIOS() | 静态方法 | 判断是否在 iOS 或 MacCatalyst 系统运行。 | 
		
			| IsIOSVersionAtLeast(...) | 静态方法 | 判断 iOS/MacCatalyst 版本是否大于等于指定版本。 | 
		
			| IsLinux() | 静态方法 | 判断是否在 Linux 系统运行。 | 
		
			| IsMacCatalyst() | 静态方法 | 判断是否在 Mac Catalyst 运行。 | 
		
			| IsMacCatalystVersionAtLeast(...) | 静态方法 | 判断 Mac Catalyst 版本是否大于等于指定版本。 | 
		
			| IsMacOS() | 静态方法 | 判断是否在 macOS 运行。 | 
		
			| IsMacOSVersionAtLeast(...) | 静态方法 | 判断 macOS 版本是否大于等于指定版本。 | 
		
			| IsOSPlatform(string platform) | 静态方法 | 判断是否在指定平台运行(参数写 "Windows"、"Linux"、"iOS" 等)。 | 
		
			| IsOSPlatformVersionAtLeast(...) | 静态方法 | 判断指定平台的版本是否大于等于某个版本。 | 
		
			| IsTvOS() | 静态方法 | 判断是否在 tvOS 运行。 | 
		
			| IsTvOSVersionAtLeast(...) | 静态方法 | 判断 tvOS 版本是否大于等于指定版本。 | 
		
			| IsWasi() | 静态方法 | 判断是否在 WASI 环境运行。 | 
		
			| IsWatchOS() | 静态方法 | 判断是否在 watchOS 运行。 | 
		
			| IsWatchOSVersionAtLeast(...) | 静态方法 | 判断 watchOS 版本是否大于等于指定版本。 | 
		
			| IsWindows() | 静态方法 | 判断是否在 Windows 系统运行。 | 
		
			| IsWindowsVersionAtLeast(...) | 静态方法 | 判断 Windows 版本是否大于等于指定版本。 | 
	
Demo:
using System.Runtime.InteropServices;
Console.WriteLine($"当前系统版本是否大于10:{OperatingSystem.IsWindowsVersionAtLeast(10)}");
var os = Environment.OSVersion;
Console.WriteLine($"当前系统:{os.VersionString}");
2、ModuleInitializer
在Main函数前执行:
using System.Runtime.CompilerServices;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Main函数执行");
    }
}
public static class InitModule
{
    [ModuleInitializer]
    internal static void Init()
    {
        Console.WriteLine("在Main函数前执行");
    }
}