---
# System prepended metadata

title: C# プリプロセッサ ディレクティブ 2021-08-10
tags: [define, C#, 定義済み, シンボル, プリプロセッサ ディレクティブ]

---

---
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` `定義済み` `シンボル`
