KO CSharp Structs Records - LIHACHTETAN/ClassicUO-Bad-Newbie-CSharp-Scripts-IDE GitHub Wiki
ะฃะบัะฐัะฝััะบะฐ ยท ะ ัััะบะธะน ยท English ยท Deutsch ยท Franรงais ยท Italiano ยท Espaรฑol ยท ็น้ซไธญๆ ยท ๆฅๆฌ่ช ยท ํ๊ตญ์ด
๊ตฌ์กฐ, ๋ ์ฝ๋, ํํ ๋ฐ ๋น๊ต
struct โ ๊ฐ ์ ํ; class์ ์ฐธ์กฐ ์ ํ์
๋๋ค. record๋ ํธ๋ฆฌํ ๋ฐ์ดํฐ ๋๋ฑ ์๋ฏธ ์ฒด๊ณ๋ฅผ ๊ฐ์ถ ์ ํ์ ์ง์ ํฉ๋๋ค. record class ๋ฐ record struct๊ฐ ๊ฐ๋ฅํฉ๋๋ค. with๋ ์๋ณธ ๊ฐ์ฒด๋ฅผ ์ ์งํ๋ฉด์ ์์ ๋ ๊ตฌ์ฑ์์ด ํฌํจ๋ ๋ ์ฝ๋ ๋ณต์ฌ๋ณธ์ ๋ง๋ญ๋๋ค.
๊ฐ๋จํ ์์ (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
record Position(int X, int Y);
var first = new Position(10, 20);
var second = first with { X = 11 };
UO.Print($"First={first}, second={second}");
readonly record struct Point(int X, int Y);
var point = new Point(10, 20);
(int X, int Y) coordinates = (point.X, point.Y);
var (x, y) = coordinates;
UO.Print($"{x}, {y}");
ํํ์ ๋ณ๋์ ํด๋์ค ์ ์ธ ์์ด ์ฌ๋ฌ ๊ฐ์ ๊ทธ๋ฃนํํฉ๋๋ค. ํด๋น ์์ ์ด๋ฆ์ ๊ฐ๋
์ฑ์ ํฅ์์ํค์ง๋ง ๋
๋ฆฝ์ ์ธ ์ ์ ํ์ ์์ฑํ์ง๋ ์์ต๋๋ค. ๊ธฐ๋ณธ ์ ํ์ ๊ฒฝ์ฐ ์ฐธ์กฐ ๋์ผ์ฑ Equals์ ์ค๋ฒ๋ก๋๋ ์ฐ์ฐ์ ==๋ฅผ ๊ตฌ๋ณํฉ๋๋ค.
๊ณต์ ๋ฌธ์: ๊ตฌ์กฐ์ฒด, ๋ ์ฝ๋, ํํ ๋ฐ ๋น๊ต - Microsoft Learn.