Skip to content

EN CSharp Keyword field

Codex edited this page Oct 11, 2026 · 2 revisions

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

C#: field

Handbook C# · Practical Guide

Refers to an automatically generated property field inside its accessor. Allows you to combine automatic storage with verification.

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
var item = new Item();
item.Count = -2;
System.Console.WriteLine(item.Count);
class Item { public int Count { get; set => field = System.Math.Max(0, value); } }

Result:

0

Syntax

public int Count { get; set => field = Math.Max(0, value); }

Syntax C# 14. The @field identifier can refer to its own member with the same 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)
    {
        Meter meter = new() { Count = -3 };
        Console.WriteLine(meter.Count);
    }
}
public class Meter { public int Count { get; set => field = Math.Max(0, value); } }

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)
    {
        Profile profile = new() { Name = " archer " };
        Console.WriteLine(profile.Name);
    }
}
public class Profile { public string Name { get => field ?? ""; set => field = value.Trim(); } }

Official source: Microsoft Learn.

Clone this wiki locally