--- lang: ja-jp breaks: true --- # C# プリプロセッサ ディレクティブ 2021-08-10 ## .NET ターゲット フレームワークの 定義済み プリプロセッサ シンボル > C# プリプロセッサ ディレクティブ > https://docs.microsoft.com/ja-jp/dotnet/csharp/language-reference/preprocessor-directives > OR_GREATER preprocessor symbols for TFMs > https://github.com/dotnet/designs/blob/main/accepted/2020/or-greater-defines/or-greater-defines.md | ターゲット フレームワーク | Symbols | | -------- | -------- | | NET Framework | NETFRAMEWORK, NET48, NET472, NET471, NET47, NET462, NET461, NET46, NET452, NET451, NET45, NET40, NET35, NET20 | | .NET Standard | NETSTANDARD, NETSTANDARD2_1, NETSTANDARD2_0, NETSTANDARD1_6, NETSTANDARD1_5, NETSTANDARD1_4, NETSTANDARD1_3, NETSTANDARD1_2, NETSTANDARD1_1, NETSTANDARD1_0 | | .NET 5+ (および .NET Core) | NET, NET6_0, NET6_0_ANDROID, NET6_0_IOS, NET6_0_MACOS, NET6_0_MACCATALYST, NET6_0_TVOS, NET6_0_WINDOWS, NET5_0, NETCOREAPP, NETCOREAPP3_1, NETCOREAPP3_0, NETCOREAPP2_2, NETCOREAPP2_1, NETCOREAPP2_0, NETCOREAPP1_1, NETCOREAPP1_0 | ```csharp= public class Directive { public static string GetSymbols() { List<string> lst = new List<string>(); #if NETFRAMEWORK lst.Add("NETFRAMEWORK"); #endif #if NET48 lst.Add("NET48"); #endif #if NET472 lst.Add("NET472"); #endif #if NET471 lst.Add("NET471"); #endif #if NET47 lst.Add("NET47"); #endif #if NET462 lst.Add("NET462"); #endif #if NET461 lst.Add("NET461"); #endif #if NET46 lst.Add("NET46"); #endif #if NET452 lst.Add("NET452"); #endif #if NET451 lst.Add("NET451"); #endif #if NET45 lst.Add("NET45"); #endif #if NET40 lst.Add("NET40"); #endif #if NET35 lst.Add("NET35"); #endif #if NET20 lst.Add("NET20"); #endif #if NETSTANDARD lst.Add("NETSTANDARD"); #endif #if NETSTANDARD2_1 lst.Add("NETSTANDARD2_1"); #endif #if NETSTANDARD2_0 lst.Add("NETSTANDARD2_0"); #endif #if NETSTANDARD1_6 lst.Add("NETSTANDARD1_6"); #endif #if NETSTANDARD1_5 lst.Add("NETSTANDARD1_5"); #endif #if NETSTANDARD1_4 lst.Add("NETSTANDARD1_4"); #endif #if NETSTANDARD1_3 lst.Add("NETSTANDARD1_3"); #endif #if NETSTANDARD1_2 lst.Add("NETSTANDARD1_2"); #endif #if NETSTANDARD1_1 lst.Add("NETSTANDARD1_1"); #endif #if NETSTANDARD1_0 lst.Add("NETSTANDARD1_0"); #endif #if NET lst.Add("NET"); #endif #if NET6_0 lst.Add("NET6_0"); #endif #if NET6_0_ANDROID lst.Add("NET6_0_ANDROID"); #endif #if NET6_0_IOS lst.Add("NET6_0_IOS"); #endif #if NET6_0_MACOS lst.Add("NET6_0_MACOS"); #endif #if NET6_0_MACCATALYST lst.Add("NET6_0_MACCATALYST"); #endif #if NET6_0_TVOS lst.Add("NET6_0_TVOS"); #endif #if NET6_0_WINDOWS lst.Add("NET6_0_WINDOWS"); #endif #if NET5_0 lst.Add("NET5_0"); #endif #if NETCOREAPP lst.Add("NETCOREAPP"); #endif #if NETCOREAPP3_1 lst.Add("NETCOREAPP3_1"); #endif #if NETCOREAPP3_0 lst.Add("NETCOREAPP3_0"); #endif #if NETCOREAPP2_2 lst.Add("NETCOREAPP2_2"); #endif #if NETCOREAPP2_1 lst.Add("NETCOREAPP2_1"); #endif #if NETCOREAPP2_0 lst.Add("NETCOREAPP2_0"); #endif #if NETCOREAPP1_1 lst.Add("NETCOREAPP1_1"); #endif #if NETCOREAPP1_0 lst.Add("NETCOREAPP1_0"); #endif #if NET30_OR_GREATER lst.Add("NET30_OR_GREATER"); #endif #if NET35_OR_GREATER lst.Add("NET35_OR_GREATER"); #endif #if NET40_OR_GREATER lst.Add("NET40_OR_GREATER"); #endif #if NET451_OR_GREATER lst.Add("NET451_OR_GREATER"); #endif #if NET452_OR_GREATER lst.Add("NET452_OR_GREATER"); #endif #if NET45_OR_GREATER lst.Add("NET45_OR_GREATER"); #endif #if NET461_OR_GREATER lst.Add("NET461_OR_GREATER"); #endif #if NET462_OR_GREATER lst.Add("NET462_OR_GREATER"); #endif #if NET46_OR_GREATER lst.Add("NET46_OR_GREATER"); #endif #if NET471_OR_GREATER lst.Add("NET471_OR_GREATER"); #endif #if NET472_OR_GREATER lst.Add("NET472_OR_GREATER"); #endif #if NET47_OR_GREATER lst.Add("NET47_OR_GREATER"); #endif #if NET48_OR_GREATER lst.Add("NET48_OR_GREATER"); #endif #if NET5_0_OR_GREATER lst.Add("NET5_0_OR_GREATER"); #endif #if NET6_0_OR_GREATER lst.Add("NET6_0_OR_GREATER"); #endif #if NETCOREAPP3_0_OR_GREATER lst.Add("NETCOREAPP3_0_OR_GREATER"); #endif #if NETCOREAPP3_1_OR_GREATER lst.Add("NETCOREAPP3_1_OR_GREATER"); #endif #if WINDOWS lst.Add("WINDOWS"); #endif #if WINDOWS7_0 lst.Add("WINDOWS7_0"); #endif #if WINDOWS7_0_OR_GREATER lst.Add("WINDOWS7_0_OR_GREATER"); #endif #if DEBUG lst.Add("DEBUG"); #endif #if RELEASE lst.Add("RELEASE"); #endif #if TRACE lst.Add("TRACE"); #endif return string.Join(";", lst); } ``` ###### tags: `C#` `プリプロセッサ ディレクティブ` `define` `定義済み` `シンボル`