이름이 지정된 튜플 요소
튜플 필드에 의미 있는 이름을 지정합니다.
이름이 지정된 튜플 요소은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
튜플 요소에 이름 지정하기
Item1/Item2 대신 튜플 요소에 이름을 지정하면 코드를 읽기 쉽게 만들 수 있습니다: (int Id, string Name).
using System;
class Program
{
static void Main()
{
(int Id, string Name) user = (1, "Ada");
Console.WriteLine(user.Id + ": " + user.Name);
}
}리터럴에서 이름 지정하기
튜플을 만들 때 이름을 직접 지정할 수 있으며, 컴파일러가 그 이름을 기억합니다.
using System;
class Program
{
static void Main()
{
var point = (X: 3, Y: 4);
Console.WriteLine("X=" + point.X + ", Y=" + point.Y);
}
}이름이 명확성을 높이는 이유
이름이 지정된 요소는 의도를 설명합니다. result.Total은 result.Item2보다 훨씬 명확합니다.
using System;
class Program
{
static void Main()
{
var result = (Count: 3, Total: 150);
Console.WriteLine("Avg: " + ((double)result.Total / result.Count).ToString("0.0"));
}
}이름은 선택적인 레이블입니다
튜플 요소 이름은 컴파일 시간에만 편의를 제공합니다. 내부적으로 필드는 여전히 Item1, Item2이며 두 이름을 모두 사용할 수 있습니다.
using System;
class Program
{
static void Main()
{
var p = (Age: 30, City: "Rome");
Console.WriteLine(p.Age + " / " + p.Item1); // same value
Console.WriteLine(p.City + " / " + p.Item2);
}
}메서드 시그니처에서 이름이 지정된 튜플 사용하기
메서드는 이름이 지정된 튜플을 매개 변수 또는 반환 형식으로 선언할 수 있으므로 API가 스스로 의미를 설명하게 됩니다.
using System;
class Program
{
static (int Sum, int Product) Compute(int a, int b)
{
return (a + b, a * b);
}
static void Main()
{
var r = Compute(3, 4);
Console.WriteLine("Sum=" + r.Sum + ", Product=" + r.Product);
}
}이름 지정과 위치 기반 방식 섞기
일부 요소에만 이름을 지정하고 나머지는 위치 기반으로 둘 수 있지만, 모두 이름을 지정하는 편이 더 명확합니다.
using System;
class Program
{
static void Main()
{
var data = (Id: 7, "guest", Active: true);
Console.WriteLine(data.Id + ", " + data.Item2 + ", " + data.Active);
}
}추론된 멤버에 이름 지정하기
이름이 지정된 변수로 튜플을 만들면 C#이 일치하는 요소 이름을 자동으로 추론할 수 있습니다.
using System;
class Program
{
static void Main()
{
int width = 10, height = 5;
var size = (width, height); // names inferred from variables
Console.WriteLine("w=" + size.width + ", h=" + size.height);
}
}이름이 지정된 요소 업데이트하기
이름이 지정된 요소도 여전히 쓰기 가능한 필드이므로 프로그램이 실행되는 동안 다시 할당할 수 있습니다.
using System;
class Program
{
static void Main()
{
var game = (Player: "A", Score: 0);
game.Score += 25;
Console.WriteLine(game.Player + " scored " + game.Score);
}
}목록에서 이름이 지정된 튜플 사용하기
이름이 지정된 튜플의 목록은 표의 행처럼 읽힙니다.
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
var people = new List<(string Name, int Age)>
{
("Ann", 30),
("Bob", 25)
};
foreach (var p in people)
Console.WriteLine(p.Name + " is " + p.Age);
}
}이름과 같음 비교
이름은 같음 비교에 영향을 주지 않습니다. 요소 이름과 관계없이 값이 일치하면 두 튜플은 같습니다.
using System;
class Program
{
static void Main()
{
var a = (X: 1, Y: 2);
var b = (A: 1, B: 2);
Console.WriteLine(a == b); // True - values match
}
}함께 적용하기
이름이 지정된 튜플은 튜플의 간결함과 이름이 지정된 필드의 가독성을 결합하므로, 명확한 메서드 반환 값에 적합합니다.
using System;
class Program
{
static (bool Ok, string Message) Validate(int age)
{
if (age < 0) return (false, "Age cannot be negative");
return (true, "Valid");
}
static void Main()
{
var v = Validate(-1);
Console.WriteLine(v.Ok + ": " + v.Message);
}
}빠른 확인
이름이 지정된 튜플 요소에 대한 이해도를 확인해 보세요.
복습
(int Id, string Name)과 같은 이름이 지정된 튜플 요소는 튜플 자체가 내용을 설명하도록 만들며, Item1 대신 이름으로 접근할 수 있습니다. 이름은 선언하거나 변수에서 추론할 수 있고 메서드 시그니처에서도 사용할 수 있습니다. 이름은 컴파일 시간 레이블일 뿐 같음 비교에는 영향을 주지 않으며, 비교는 값을 기준으로 이루어집니다.
using System;
class Program
{
static void Main()
{
var user = (Id: 42, Name: "Kai");
Console.WriteLine(user.Name + " #" + user.Id);
}
}자주 묻는 질문
“이름이 지정된 튜플 요소” 강의는 무료인가요?
네 — “이름이 지정된 튜플 요소” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.
“이름이 지정된 튜플 요소”에서 뭘 배우나요?
튜플 필드에 의미 있는 이름을 지정합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
C# Academy을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.
“이름이 지정된 튜플 요소” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- 값 튜플 기초
- 이름이 지정된 튜플 요소
- 구조 분해
- 메서드 반환값으로 사용하는 튜플