Skip to content

EN CSharp Keyword struct

Codex edited this page Oct 11, 2026 · 2 revisions

Українська · Русский · English · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어

C#: struct

Handbook C# · Practical Guide

Declares value type: The assignment copies the value. Small immutable structures are convenient for coordinates and results.

Simple example (Example.cs)

Save this example separately as Example.cs. Run it independently of the other examples on this page.

Example.cs:

// PROJECT-EXAMPLE
Point original = new() { X = 2 };
Point copy = original;
copy.X = 9;
System.Console.WriteLine($"{original.X}:{copy.X}");
struct Point { public int X; }

Result:

2:9

Syntax

struct Name { ... } / readonly struct Name { ... }

Example 1: simple form

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

public static class Program
{
    public static async Task Main(string[] args)
    {
        Point first = new(2, 3);
        Point copy = first;
        copy.X = 9;
        Console.WriteLine($"{first.X}:{copy.X}");
    }
}
public struct Point(int x, int y) { public int X = x; public int Y = y; }

Example 2: another practical form

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Runtime.CompilerServices;

public static class Program
{
    public static async Task Main(string[] args)
    {
        Position position = new(2, 4);
        Console.WriteLine(position.X + position.Y);
    }
}
public readonly struct Position(int x, int y) { public int X { get; } = x; public int Y { get; } = y; }

Official source: Microsoft Learn.

Clone this wiki locally