Skip to content

CSharp Keyword with

Codex edited this page Oct 11, 2026 · 2 revisions

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

C#: with

Довідник C# · Практичне керівництво

Створює змінену копію record, struct або анонімного об’єкта. Вкладені посилання копіюються поверхнево.

Простий приклад (Example.cs)

Збережіть цей приклад окремо як Example.cs. Запускайте його незалежно від інших прикладів на сторінці.

Example.cs:

// PROJECT-EXAMPLE
var original = new Item("ore", 1);
var copy = original with { Count = 3 };
System.Console.WriteLine($"{original.Count}:{copy.Count}");
record Item(string Name, int Count);

Результат:

1:3

Синтаксис

var changed = original with { Member = value };

Приклад 1: базова форма

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)
    {
        Person first = new("Archer", 2);
        Person next = first with { Level = 3 };
        Console.WriteLine($"{first.Level}:{next.Level}");
    }
}
public record Person(string Name, int Level);

Приклад 2: інша практична форма

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)
    {
        var first = new { Name = "Ore", Count = 5 };
        var next = first with { Count = 8 };
        Console.WriteLine($"{first.Count}:{next.Count}");
    }
}

Офіційне джерело: Microsoft Learn.

Clone this wiki locally