Skip to content

RU 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