invoke
·
⭐C Sharp/12. 델리게이트
invokeinvoke는 "호출하다" 라는 뜻으로, 주로 메서드나 델리게이트 ( Delegate )를 실행할 때 사용하는 C# 키워드 / 메서드이다.invoke 는 델리게이트나 이벤트 , 쓰레드 , UI 컨트롤 등에 연결된 메서드를 실제로 실행 ( call ) 하는 기능을 담당한다.즉 , "미리 지정된 함수를 실행시킨다" 는 의미로 쓰인다. C# 에서는 다음과 같은 상황에서 쓰인다델리게이트.Invoke( ) : 델리게이트가 가리키는 메서드 호출컨트롤.Invoke( ) : UI 쓰레드 ( 주 쓰레드 ) 에서 안전하게 메서드를 호출할 때 사용메서드.Invoke( ) : Reflection 으로 메서드를 동적으로 실행할 때 사용 문법▼델리게이트에서의 Invokeusing System;delegate void..
삼항연산자부터 null 처리까지
·
⭐C Sharp/03. 연산자
? ( 물음표 기호 ) 의 사용법 정리? 는 C# 에서 조건 , 널 ( Null ) , 안전한 접근 , 기본값 처리 등 여러 상황에서 사용되는 다기능 연산자 기호이다.? 관련 문법은 C# 에서 네 가지로 나뉘며, 헷갈리기 쉬우므로 아래에 정리한다. 전체 요약 표이름문법핵심 기능예시삼항연산자조건 ? 참 : 거짓조건에 따라 값 선택( x > 0 ) ? "양수" : "음수"널러블 타입타입 ? 변수명값 형식에 null 허용int? num = null;? 연산자객체?.멤버null 안전 접근obj?.ToString()?? 연산자A ?? Bnull 일때 기본값 반환name ?? "Unknown" 1. 삼항 연산자 ( Conditional Operator )조건식이 참인지 거짓인지에 따라 두 가지 값 중 하나를 선..
HashSet<T>
·
⭐C Sharp/📂▼자료구조
HashSet해시셋 ( HashSet ) 은 C# 의 'System.Collections.Generic' 네임스페이스 안에 포함된 컬렉션 클래스 중 하나이다.HaseSet 은 중복되지 않는 요소 ( Unique elements )를 저장하는 집합 ( Set ) 형태의 컬렉션이다.내부적으로 해시 테이블 ( Hash Table ) 을 사용하여 빠른 검색 , 추가 , 삭제가 가능하다.즉 , 순서가 없고 중복이 허용되지 않는 데이터 집합이다. 문법HashSet 변수명 = new HashSet(); ▼주요 메서드Add(T item); // 요소 추가Remove(T item); // 요소 제거Contains(T item); // 특정 요소 존재 여부 확인C..
IsNumeric
·
⭐C Sharp/00. 문법
IsNumericIsNumeric 은 입력된 값이 숫자인지 판별하기 위한 기능이다.C# 에는 VB 처럼 IsNumeric() 이라는 내장 함수가 직접적으로 존재하지 않지만,동일한 기능을 double.TryParse() , int.TryParse(0 등을 사용해서 구현할 수 있다.문자열이 숫자로 변환 가능한지를 검사하는 기능을 의미한다 문법bool result = double.TryParse(string input, out double number);input : 검사할 문자열number : 변환된 숫자 ( 성공 시 결과 저장 )반환값 : 변환 성공 시 true , 실패 시 false 예시 코드using System;class Program{ static void Main() { ..
virtual 과 override
·
⭐C Sharp/11. 객체 지향
virtual 과 overridevirtual 과 override 는 C# 상속에서 다형성을 구현할 때 사용하는 키워드이다.그 차이를 아래에 정리한다. virtual부모 크랠스에서 선언한 메서드 / 속성을 자식 클래스가 재정의할 수 있도록 허용한다는 의미사용 위치 : 부모 클래스의 메서드나 속성 앞문법 예시 :class Animal{ public virtual void Speak() { Console.WriteLine("동물이 소리를 냅니다."); }} override부모 클래스에서 virtual 또는 abstract 로 선언된 메서드를 자식 클래스에서 재정의할 때 사용한다.사용 위치 : 자식 클래스의 메서드 앞문법 예시 :class Dog : Animal{ pub..
goto 문법
·
⭐C Sharp/00. 문법
goto 문법goto 문은 프로그램의 실행 흐름을 특정 레이블 ( Label ) 로 강제로 이동시키는 명령문이다.goto 문은 C# 에서는 거의 쓰이지 않지만, 옛날 언어 ( C , C++ ) 의 흐름 제어 방식을 그대로 유지하고 있는 명령어이다.즉 , 코드 실행 순서를 직접 "점프"시키는 기능이다.하지만 가독성과 유지보수성이 크게 떨어지므로, C# 에서는 반복문 , 조건문 , 메서드 분리 등으로 대체하는 것이 일반적이다. 문법goto 레이블이름;레이블이름: // 실행할 코드레이블이름 : 콜론 (:) 으로 끝나는 라벨 정의goto 레이블이름; 코드 흐름을 해당 위치로 점프 예시 코드using System;class Program{ static void Main() { ..
Big-O 표기법
·
📊Algorithm/BigO
Big-O 표기법 ( 점근 표기법 )일반적으로 알고리즘의 시간복잡도를 나타내는데 사용한다. Big-O 표기법 , Big-Omega 표기법 , Big-Theta 표기법 등이 있다.보통 성능이 얼마나 나쁜지가 중요하므로 Big-O 표기법이 제일 많이 쓰인다.Big-O 표기법은 알고리즘이 해당 차수이거나 그보다 낮은 차수의 시간 복잡도를 가질 때 사용한다.즉, Big-O 표기법은 입력 크기 n 이 커질 때 알고리즘의 실행 시간 ( 또는 메모리 사용량 ) 의 상한이 어떻게 증가하는지를 나타내는 점근적 ( Asymptotic ) 척도이다. 상수 시간 , 상수 배수 같은 세부 구현 차이는 무시하고 성장률만 본다는게 핵심이다. 핵심 규칙 ( 작동 원리 + 개념 요약 )입력 크기 n 을 먼저 정한다 ( 예시 : 배열..
DateTime
·
⭐C Sharp/09. 구조체
DateTimeDateTime 은 날짜와 시간 정보를 표현하는 구조체 ( Struct )이다.년 / 월 / 일 / 시 / 분 / 초 등의 값을 저장하고 조작할 수 있게 해준다.시스템의 현재 시간을 가져오거나, 특정 시간 차이를 계산할 때 자주 사용한다. 문법// 생성DateTime dt = new DateTime(2025, 10, 8, 13, 30, 0); // 2025년 10월 8일 13시 30분// 현재 시각DateTime now = DateTime.Now; // 시스템 현재 날짜와 시간DateTime today = DateTime.Today; // 오늘 날짜 (시간 00:00)// 문자열 포맷 변환string formatted = now.ToString("yyyy-MM-dd HH..
사람의 좌표계 vs 프로그래밍 좌표계
·
⭐C Sharp/06. 배열
2차원 배열은 행 ( Row ) → 열 ( Column ) 순으로 저장된다int [,] arr = new [2,3]{1, 2, 3}{4, 5, 6}arr [ 행 , 열 ] = arr [ y , x ]첫번째 인덱스 : 세로 방향 ( y , 행 , row )두번째 인덱스 : 가로 방향 ( x , 열 , column ) 왜 x , y 순이 아니라 y , x 순인가?C# 뿐 아니라 대부분의 프로그래밍 언어에서 2차원 배열을 다룰 때 헷갈리는 핵심 포인트이다.이건 단순히 표기 순서가 다른 문제가 아니라, "사람이 세상을 인식하는 방식" vs "컴퓨터가 메모리를 다루는 방식"의 차이에서 비롯된 것이다. 1. 사람 ( 수학 ) 의 좌표계수학 시간에 배운 좌표 평면은 이렇게 생겼다 ↑ y (위쪽이 +) │ │ └..