C#教科書を身につける.デュアル(Tuple)

3649 ワード

https://www.youtube.com/watch?v=S99SmK8hQt4&list=PLO56HZSjrPTB4NxAsEP8HRk6YKBDLbp7m&index=74

1.ダブル(Tuple)


フォーマット
  • かっこ記号の単純な構文を使用して、1つ以上の属性を持つオブジェクトを作成します.
  • 背景
  • メソッドのパラメータを渡す場合、カスタムクラスを使用して複数の値
  • を一度に渡すことができる.
  • チュートリアルでは、新しいクラスを作成することなく言語階層で複数の値を渡す機能を提供し、
  • をシンプル化します.

    2.プロジェクト


    01.tuple宣言と初期化

    using System;
    using static System.Console;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Diagnostics;
    using System.Reflection;
    
    namespace testProject
    {
       
        
        class Program
        {         
            static void Main(string[] args)
            {
                var r = (12, 34, 56); // 3개의 int 형식데이터가 r 변수에 담김
                WriteLine(r.Item1);
                WriteLine(r.Item2);
                WriteLine(r.Item3);
    
                var fhd = (1920, 1080); // [1] 기본 : Item1, Item2 형태
                WriteLine(fhd.Item1);
                WriteLine(fhd.Item2);
    
                var uhd = (Width: 3840, Height: 2160); // [2] 이름 지정
                WriteLine(uhd.Width);
                WriteLine(uhd.Height);
    
                (ushort Width, ushort Height) hd = (1366, 768); // [3] 이름과 형식 지정
                WriteLine(hd.Width);
                WriteLine(hd.Height);
                WriteLine(hd.Width.GetType());
    
    
            }
        }
    }

    02.トゥプリトン

    using System;
    using static System.Console;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Diagnostics;
    using System.Reflection;
    
    namespace testProject
    {
       
        class Program
        {
            // [1] 튜플 리턴 : 형식(int, int)
            static (int, int) Tally1()
            {
                var r = (12, 3); //[A] 튜플 리터럴에 2개의 값 담기
                return r; // [B] 튜플 리터럴 반환
            }
    
            // [2] 튜플 리턴에 이름 값 지정
            static (int Sum, int Count) Tally2() => (45, 6);
    
            static void Main(string[] args)
            {
                
                WriteLine(Tally1());
                var tally2 = Tally2();
                WriteLine(tally2.Sum);
                WriteLine(tally2.Count);
            }
        }
    }

    03.整理(+グラフ構造分解)

    using System;
    using static System.Console;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Diagnostics;
    using System.Reflection;
    
    namespace testProject
    {
       
        class Program
        {
    
            static void Main(string[] args)
            {
                // [1] 튜플 선언 및 초기화
                var boy = (Name: "철수", IsStudnet: true, OrderPrice: 1_000);
                WriteLine($"{boy.Name}(대학생 : {boy.IsStudnet}) - 주문 : {boy.OrderPrice:C0}");
    
                // [2] 튜플에 default 초기화
                static (int, int) ZeroZero() => default;
                WriteLine(ZeroZero());
    
                // [3] 튜플 메서드에서 이름 지정
                static (int First, int Second) NameTuple()
                {
                    var r = (100, 200);
                    return r;
                }
                var rr = NameTuple();
                WriteLine(rr.First);
                WriteLine(rr.Second);
    
                // 튜플 분해(Tuple Deconstuctuon) 또는 튜플 해제 작업
                var (first, second) = NameTuple();
                WriteLine(first);
                WriteLine(second);
    
    
            }
        }
    }