Online C# compiler for .NET 10 and C# 14

When you only need to check a short C# program, setting up Visual Studio or .NET locally can feel like more work than the test itself. This browser runner has a prepared C# 14 environment on .NET 10, with SDK 10.0.401 and runtime 10.0.12.

Write code in Program.cs and run it. The terminal shows build diagnostics and program output, and accepts standard input if your program asks for it. The tool is provided by TheOnlineToolset and isn’t an official Microsoft or Visual Studio service.

A focused place to try C# code

The editor is set up for console programs and experiments: a small calculation, a JSON test, or a script that reads user input. Each submission builds a fixed project, with your code taking the place of Program.cs.

The base environment supports common .NET and C# features, including LINQ, collections, records, generics, async/await, regular expressions, JSON through System.Text.Json, numerics, reflection, and sandboxed file operations.

Here’s a small example using the preloaded Newtonsoft.Json package:

using System;
using System.Collections.Generic;
using Newtonsoft.Json;

var counts = JsonConvert.DeserializeObject<Dictionary<string, int>>(
    "{\"apples\":3,\"oranges\":2}")!;

Console.WriteLine($"Total: {counts["apples"] + counts["oranges"]}");

Output:

Total: 5

Preloaded packages

The environment includes these curated packages at fixed versions:

Package

Version

Useful for

MathNet.Numerics

5.0.0

Numerical computing, statistics, and linear algebra

Newtonsoft.Json

13.0.4

Reading and writing JSON

CsvHelper

33.1.0

Reading and writing CSV data

NodaTime

3.3.5

Date, time, calendar, and time-zone operations

AngleSharp

1.8.3

Parsing and querying HTML

Humanizer.Core

3.0.10

Converting values into readable text

ScottPlot

5.1.59

Creating charts and plots

SkiaSharp

4.153.1

2D graphics and image drawing

Plot rendering also uses supporting graphics packages, including SkiaSharp.HarfBuzz 4.153.1 and HarfBuzzSharp 14.2.1.301. The listed packages are preloaded and available offline. Arbitrary NuGet restores and custom package references aren’t available.

Saving and viewing plots

You can use ScottPlot to create a chart and save it as a PNG with a filename matching plot-*.png, such as plot-results.png. The runner doesn’t capture plots automatically. It displays up to four matching images per run, with a limit of 2 MB per image and 8 MB total. Images can be up to 4096 × 4096 pixels. Ordinary labels are supported; complex-script text layout isn’t guaranteed.

From editor to output

  1. Open the C# tool and write or paste a console program in Program.cs.

  2. Add using statements for any preloaded package you want to use.

  3. Run the program and enter input in the terminal if it prompts for it.

  4. Review the output, diagnostics, or any captured plots. Reset the editor to return to its example.

The browser editor includes Monaco, a terminal for standard input and output, themes, fullscreen mode, and a reset option. It doesn’t include a step-through debugger. The Linux environment also doesn’t support desktop GUI frameworks such as WPF or Windows Forms.

Runtime limits

Limit

Default

Source code

64 KiB

Standard input

16 KiB

Build time

20 seconds

Run time

10 seconds

Memory

768 MiB

Workspace

64 MiB

Submissions

6 per minute; 100 per day

Terminal session

30-second startup, 45-second idle, 90-second maximum

These limits are configurable and may change. The environment is intended for short runs and console experiments, rather than long-running jobs or full application builds.

This is a fixed .NET project, not a full IDE or project builder. It doesn’t accept project uploads, build complete solutions, run custom MSBuild steps, download packages, or produce standalone applications. Windows APIs and desktop interfaces aren’t available in this Linux environment.

For other languages, the site also has public C, C++, Java, and Python compiler pages.