■ switch 명령문에서 튜플 패턴(Tuple Pattern)을 위한 when 키워드를 사용하는 방법을 보여준다.
▶ SampleData.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
namespace TestProject { /// <summary> /// 샘플 데이터 /// </summary> public class SampleData { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region X - X /// <summary> /// X /// </summary> public int X { get; set; } #endregion #region Y - Y /// <summary> /// Y /// </summary> public int Y { get; set; } #endregion } } |
▶ Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
using System; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { string description = GetDescription(new SampleData { X = 60, Y = 40 }); Console.WriteLine(description); } #endregion #region 설명 구하기 - GetDescription(sampleData) /// <summary> /// 설명 구하기 /// </summary> /// <param name="sampleData">샘플 데이터</param> /// <returns>설명</returns> private static string GetDescription(SampleData sampleData) => (sampleData.X, sampleData.Y) switch { var (x, y) when x >= 50 && y >= 50 => "우상단", var (x, y) when x >= 50 && y < 50 => "우하단", var (x, y) when x < 50 && y >= 50 => "좌상단", var (x, y) when x < 50 && y < 50 => "좌하단", var (_, _) => "" }; #endregion } } |