CSharp Keyword with - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
Українська · Русский · 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.