[C#/COMMON] swtich문 : 위치 패턴(Positional Pattern) 사용하기
■ swtich문에서 위치 패턴(Positional Pattern)을 사용하는 방법을 보여준다. ▶ Point.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 49 50 51 52 53 54 55 56 57 58 |
namespace TestProject { /// <summary> /// 포인트 /// </summary> public class Point { //////////////////////////////////////////////////////////////////////////////////////////////////// Property ////////////////////////////////////////////////////////////////////////////////////////// Public #region X - X /// <summary> /// X /// </summary> public int X { get; } #endregion #region Y - Y /// <summary> /// Y /// </summary> public int Y { get; } #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Constructor ////////////////////////////////////////////////////////////////////////////////////////// Public #region 생성자 - Point(x, y) /// <summary> /// 생성자 /// </summary> /// <param name="x">X</param> /// <param name="y">Y</param> public Point(int x, int y) => (X, Y) = (x, y); #endregion //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Public #region 분해하기 - Deconstruct(x, y) /// <summary> /// 분해하기 /// </summary> /// <param name="x">X</param> /// <param name="y">Y</param> public void Deconstruct(out int x, out int y) => (x, y) = (X, Y); #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 49 50 51 52 53 54 55 56 |
using System; namespace TestProject { /// <summary> /// 프로그램 /// </summary> class Program { //////////////////////////////////////////////////////////////////////////////////////////////////// Method ////////////////////////////////////////////////////////////////////////////////////////// Static //////////////////////////////////////////////////////////////////////////////// Private #region 프로그램 시작하기 - Main() /// <summary> /// 프로그램 시작하기 /// </summary> private static void Main() { Point point = new Point(-5, -2); string quadrant = GetQuadrant(point); Console.WriteLine(quadrant); } #endregion #region 사분면 구하기 - GetQuadrant(point) /// <summary> /// 사분면 구하기 /// </summary> /// <param name="point">포인트</param> /// <returns>사분면</returns> private static string GetQuadrant(Point point) { string quadrant = point switch { (0, 0) => "원점", var (x, y) when x > 0 && y > 0 => "1사분면", var (x, y) when x < 0 && y > 0 => "2사분면", var (x, y) when x < 0 && y < 0 => "3사분면", var (x, y) when x > 0 && y < 0 => "4사분면", var (_, _) => "X/Y축", _ => null }; return quadrant; } #endregion } } |
TestProject.zip