便利なオンラインサービス
オンラインコンパイラ
-
sharplab
最新のコンパイラが使用できるが、実行は制限が非常に厳しい。
(コンパイルやアセンブラだけなら可) -
.NET Fiddle
.NET 5が使える。制限は緩いが、IDEが若干残念。 -
Compiler Explorer
アセンブリが見やすく、実行もできる。 -
try.NET
C# 7.3相当(2020/06/30時点)と思われるが、Span
は使用できない。 -
wandbox
.NET Core/Mono(mcs)が選べるが、.NET Coreの場合は実行に時間がかかる。 -
paiza.io
Mono 4.5?なので C# 6.0相当と思われる
APIなど
-
.NET API Catalog
API毎に対応しているバージョンがわかる -
DotNetApis
NuGetのパッケージ内のAPI検索 -
fuget.org
ヘルプドキュメントや逆アセンブルしたコードを見れる - .NET Standard 2.0から2.1へのAPI差分(diff)
- .NET Core 2.2から3.0へのAPI差分(diff)
- .NET Core 3.1から5.0へのAPI差分(diff)
各ソースコードと破壊的変更
CoreCLR | CoreFX(BCL) | 破壊的変更 | |
---|---|---|---|
main | CoreCLR / CoreLib | CoreFX / CoreLib | |
6.0 | CorCLR | .NET 6.0 での破壊的変更 | |
5.0 | CorCLR | .NET 5.0 の破壊的変更 | |
3.1 | CoreCLR / CoreLib | CoreFX / CoreLib | .NET Core 3.1 の破壊的変更 |
3.0 | .NET Core 3.0 の破壊的変更 | ||
2.1 | .NET Core 2.1 の破壊的変更 | ||
2.0 | CoreCLR | CoreFX | .NET Coreの破壊的変更 |
- ソース検索
-
.NET Framework referencesource
ライセンスはMICROSOFT REFERENCE SOURCE LICENSE -
.NET Framework referencesource@github
ライセンスはMIT
ツール
フリーの逆コンパイラ
- ILSpy (Microsoft Store版)
- dnSpy
- Telerik JustDecompile
- Ildasm.exe
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools\ildasm.exe"
スクリプティング
- C# Interactive
"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Roslyn\csi.exe"
(WindowsTerminalなら"commandline": "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community\\MSBuild\\Current\\Bin\\Roslyn\\csi.exe"
) - LINQPad
バージョン
Symbolを使用して、ソースコード中で#if NETCOREAPP3_1
のように判定できる。
TargetFramework | ターゲット フレームワーク モニカー (TFM) | Symbol | 既定のバージョン |
---|---|---|---|
.NET Framework | NETFRAMEWORK |
||
net20 | NET20 |
7.3 1 | |
net35 | NET35 |
7.3 1 | |
net40 | NET40 |
7.3 1 | |
net45 | NET45 |
7.3 1 | |
net451 | NET451 |
7.3 1 | |
net452 | NET452 |
7.3 1 | |
net46 | NET46 |
7.3 1 | |
net461 | NET461 |
7.3 1 | |
net462 | NET462 |
7.3 1 | |
net47 | NET47 |
7.3 1 | |
net471 | NET471 |
7.3 1 | |
net472 | NET472 |
7.3 1 | |
net48 | NET48 |
7.3 1 | |
.NET Standard | NETSTANDARD |
||
netstandard1.0 | NETSTANDARD1_0 |
7.3 | |
netstandard1.1 | NETSTANDARD1_1 |
7.3 | |
netstandard1.2 | NETSTANDARD1_2 |
7.3 | |
netstandard1.3 | NETSTANDARD1_3 |
7.3 | |
netstandard1.4 | NETSTANDARD1_4 |
7.3 | |
netstandard1.5 | NETSTANDARD1_5 |
7.3 | |
netstandard1.6 | NETSTANDARD1_6 |
7.3 | |
netstandard2.0 | NETSTANDARD2_0 |
7.3 | |
netstandard2.1 | NETSTANDARD2_1 |
8.0 | |
.NET Core | NETCOREAPP |
||
netcoreapp1.0 | NETCOREAPP1_0 |
||
netcoreapp1.1 | NETCOREAPP1_1 |
||
netcoreapp2.0 | NETCOREAPP2_0 |
7.3 | |
netcoreapp2.1 | NETCOREAPP2_1 |
7.3 | |
netcoreapp2.2 | NETCOREAPP2_2 |
7.3 | |
netcoreapp3.0 | NETCOREAPP3_0 |
8.0 | |
netcoreapp3.1 | NETCOREAPP3_1 |
8.0 | |
.NET 5 | net5.0 | NET5_0 |
9.0 |
.NET 6 | net6.0 | NET6_0 |
10 |
言語仕様
wikipediaの方が情報がそろっているので、そちらを適宜参照。
本家
ECMA(C# 5.0)
JISX3015(C# 1.2相当)
docs.microsoft.com(日本語)
https://github.com/dotnet/csharplang.ja-jp から生成されている。
- C# 6.0 のドラフト仕様
- C# 7.0 仕様の提案
- C# 7.1 仕様の提案
- C# 7.2 仕様の提案
- C# 7.3 仕様の提案
- C# 8.0 の新機能
- C# 9.0 の新機能
- C# 10 の新機能
歴史
- C# 8.0 - .NET Core 3.0 and Visual Studio 2019 version 16.3
- C# 7.3 - Visual Studio 2017 version 15.7
- C# 7.2 - Visual Studio 2017 version 15.5
- C# 7.1 - Visual Studio 2017 version 15.3
- C# 7.0 - Visual Studio 2017
- C# 6 - Visual Studio 2015
- C# 5 - Visual Studio 2012
- C# 4 - Visual Studio 2010
- C# 3 - Visual Studio 2008
- C# 2 - Visual Studio 2005
- C# 1.2 - Visual Studio .NET 2003
- C# 1.0 - Visual Studio .NET 2002