C#

    C# Local Function

    소개 C# Local Function은 C# 7.0 이후로 추가된 기능 중 하나입니다. Local Function은 메서드 내에서 정의되는 함수로, 해당 메서드 내에서만 사용됩니다. 이번 글에서는 C# Local Function에 대해 자세히 알아보겠습니다. Local Function이란? Local Function은 메서드 내에서 정의되는 함수입니다. Local Function은 해당 메서드 내에서만 사용될 수 있으며, 외부에서는 접근할 수 없습니다. Local Function은 메서드 내에서 중복되는 코드를 줄이고, 메서드의 가독성을 높이는 데 매우 유용합니다. Local Function의 예 다음은 Local Function의 간단한 예입니다. public void PrintNames(List na..

    C# 튜플 자료형

    소개 C#에서 튜플(Tuple)은 여러 값을 변수 하나에 저장할 수 있는 자료형입니다. 튜플은 서로 다른 데이터 형식의 값을 저장할 수 있으며, 소괄호로 묶인 값의 목록으로 정의됩니다. 튜플은 코드의 가독성과 유지 보수성을 향상시키며, 메서드에서 여러 값을 반환해야 하는 경우에 특히 유용합니다. 구조 튜플은 소괄호로 묶인 값의 목록으로 정의됩니다. 각 값은 데이터 형식과 값으로 구성됩니다. 다음은 튜플의 구조를 보여주는 예제입니다. // 튜플 정의 Tuple person = (25, "John"); // 튜플의 구조 ( int age = 25, string name = "John" ) 위의 예제에서, Tuple은 int와 string 형식의 값을 가진 튜플을 정의합니다. 튜플은 다음과 같은 구조를 갖습니..

    실수형 변수 decimal, float, double

    소개 C#에서는 실수형 변수를 선언하여 부동 소수점 방식과 고정 소수점 방식으로 값을 저장할 수 있습니다. 이번 글에서는 C#에서 제공하는 실수형 변수 중 decimal, float(single), double에 대해 설명하고, 이들 변수가 사용하는 고정 소수점 방식과 부동 소수점 방식에 대해 자세히 살펴보겠습니다. decimal decimal은 C#에서 고정 소수점 방식을 사용하는 실수형 변수 중 하나입니다. decimal은 128비트 부호 있는 실수형 변수로, 28자리의 정밀도를 가집니다. 이는 매우 큰 수나 소수점 이하 자리수가 많은 수를 정확하게 표현할 수 있다는 것을 의미합니다. decimal 변수를 선언할 때는 다음과 같은 방법을 사용합니다. decimal myDecimal = 123.45m;..

    Boids/Flocking Algorithm

    소개 Boids/Flocking Algorithm은 모의 떼짓기 알고리즘으로써, 새떼, 물고기 떼, 개떼 등의 떼 집단에서의 행동을 모델링하는 알고리즘입니다. 이 알고리즘은 자연에서 나타나는 다양한 떼짓기 행동을 흉내내어, 가상의 떼집단을 시뮬레이션 하는 데 사용됩니다. 이번 글에서는 C#에서 Boids/Flocking Algorithm을 구현하는 방법에 대해 자세히 살펴보겠습니다. Boids/Flocking Algorithm이란? Boids/Flocking Algorithm은 크기, 위치, 방향 등의 속성을 가진 개체를 시뮬레이션하는 알고리즘입니다. 이 알고리즘은 개체가 떼를 지어 움직이는 행동을 모방하여, 가상의 떼집단을 구현할 수 있습니다. 이 알고리즘은 크게 3가지의 규칙을 적용하여 구현됩니다. ..

    C# 패턴식 switch문

    소개 C# 8.0부터 패턴식 switch문이 추가되었습니다. 이전의 switch문보다 더욱 간결하고 유연한 코드를 작성할 수 있게 되었습니다. 이번 글에서는 C# 8.0의 패턴식 switch문의 종류와 사용법에 대해 자세하게 살펴보겠습니다. 패턴식 switch문이란? 패턴식 switch문은 switch문의 조건식에 패턴을 사용할 수 있게 해줍니다. 이를 통해 간결하고 유연한 코드를 작성할 수 있습니다. C# 8.0에서는 다양한 종류의 패턴을 사용할 수 있습니다. 상수 패턴 가장 기본적인 패턴은 상수 패턴입니다. 상수 패턴은 switch문의 조건식과 비교할 상수값을 사용합니다. string fruit = "apple"; switch (fruit) { case "apple": Console.WriteLine..

    경로 찾기 알고리즘 : A Pathfinding* Algorithm

    A* 알고리즘 A* 알고리즘은 경로찾기 알고리즘 중 하나로, 출발지점부터 목적지점까지의 최적 경로를 탐색합니다. 이 알고리즘은 가중치 그래프에서 최단 경로를 찾는 데 사용됩니다. A* 알고리즘은 다음과 같은 특징을 가지고 있습니다. 휴리스틱 함수를 사용하여 최적 경로를 탐색합니다. 경로의 비용을 계산하고, 비용이 가장 적은 경로를 선택합니다. 경로를 찾는 과정에서 이동할 수 있는 모든 경로를 검사합니다. A* 알고리즘은 C#에서 구현하기 쉽고, 많은 개발자들이 사용하고 있습니다. A* 알고리즘 구현 A* 알고리즘을 구현하기 위해서는 다음과 같은 단계를 따르면 됩니다. 출발점과 목적지점을 설정합니다. 휴리스틱 함수를 구현합니다. 우선순위 큐를 구현합니다. A* 알고리즘을 구현합니다. 출발점과 목적지점 설정..

    C# Boxing

    C#은 객체 지향 프로그래밍 언어로, 값 형식과 참조 형식을 모두 지원합니다. 값 형식은 스택에 저장되고 참조 형식은 힙에 저장됩니다. 그런데 값 형식을 참조 형식으로 사용하려면 어떻게 해야 할까요? 이때, C# Boxing 개념이 필요합니다. Boxing이란? Boxing은 값 형식을 참조 형식으로 변환하는 과정을 말합니다. Boxing을 사용하면 값 형식을 힙에 저장할 수 있습니다. 이렇게 하면 값 형식이 참조 형식으로 사용됩니다. Boxing을 사용하면 값 형식을 참조 형식으로 사용할 수 있으므로, 값 형식과 참조 형식을 혼합하여 사용할 수 있습니다. Boxing의 예 다음은 Boxing의 간단한 예입니다. int i = 10; object obj = i; 위의 예제에서 i 변수는 int 값 형식입..

    C# Jump 문 : break, continue, return, goto

    소개 C#의 Jump 문은 실행 중인 코드의 흐름을 제어하는 데 사용됩니다. 이번 글에서는 C# Jump 문 중 break, continue, return 및 goto에 대해 자세히 살펴보겠습니다. break 문 break 문은 루프 또는 switch 문에서 실행 중인 코드의 흐름을 즉시 중단시키는 데 사용됩니다. 루프에서 break 문이 실행되면 루프가 즉시 종료됩니다. switch 문에서 break 문이 실행되면 switch 문이 종료됩니다. 다음은 break 문의 예입니다. for (int i = 0; i < 10; i++) { if (i == 5) { break; } Console.WriteLine(i); } 위의 예제에서 i가 5일 때 break 문이 실행되므로 루프가 종료됩니다. continu..