0Pricing
C# Academy · 강의

이름이 지정된 튜플 요소

튜플 필드에 의미 있는 이름을 지정합니다.

이름이 지정된 튜플 요소은(는) 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 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 값 튜플 기초
  2. 이름이 지정된 튜플 요소
  3. 구조 분해
  4. 메서드 반환값으로 사용하는 튜플
← C# Academy(으)로 돌아가기