전체 글 110

[C#] 클래스 상속, 추상클래스, 인터페이스

1. 클래스 상속 (Class Inheritance)What is Inheritance?기존 클래스 (부모 혹은 슈퍼)의 속성과 메서드를 새로운 클래스(자식 혹은 서브)가 물려받는 것특징코드 재사용 : 부모 클래스의 속성과 메서드를 자식클래스에서 재사용확장성 : 기능을 확장하거나 override 할 수 있음C#에서는 단일 상속만 지원사용 시점공통 기능을 여러 클래스에서 재사용해야할 때기능을 확장하고 싶을 때2. 추상 클래스 (Abstract Class)[추상클래스]({{ site.baseurl }}/cs/2024/09/11/abstractclass) What is Abstract Class?하나 이상의 추상 메서드를 포함할 수 있는 클래스실체 클래스의 공통적인 부분을 추출해 어느정도 규격을 잡아 놓은 추..

Language/C# 2024.10.14

[C#] Delegate, Event, Action 그리고 Func

1. DelegateWhat is Delegate?Delegate는 C#에서 메서드 참조를 가능하게 하는 형식.메서드의 서명(매개변수와 반환 타입)을 기반으로 메서드를 가리킬 수 있으며, 마치 함수 포인터처럼 동작.예시public delegate void MyDelegate(string message); // 리턴 타입이 void인 Delegate 정의public void PrintMessage(string message){ Console.WriteLine(message);}MyDelegate del = PrintMessage; // 메서드 참조del("Hello, Delegate!"); // Delegate를 통한 메서드 호출2. EventWhat is Event?특수한 형태의 d..

Language/C# 2024.10.14

[C#] Console

C# Console 기능 정리1. Console.SetCursorPosition(int x, int y)역할: 콘솔 창 내에서 커서를 특정 위치(x, y)로 이동활용 예시: console을 클리어하지 않고 특정 위치로 옮겨 문자를 그리거나 지울 수 있음.Console.SetCursorPosition(10, 5); // 콘솔 창의 (10, 5) 위치로 커서 이동Console.Write("O"); // 스네이크 머리 또는 몸체 출력2. Console.SetWindowSize(int width, int height)역할: 콘솔 창의 너비와 높이를 설정활용 예시: 게임을 위한 고정된 화면 크기를 설정하여 게임 공간을 관리Console.SetWindowSize(80, 40); // 콘솔 창의 너비를 80, 높이를..

Language/C# 2024.10.14

[C#] Operator Precedence

C# 연산자 및 식 - 모든 C# 연산자 및 식 나열 - C# Microsoft Learn우선순위연산자 유형연산자0기본x.y (맴버 액세스)f(x) (호출 식)x?.y , x?[y] (Null 조건부 연산자)x++, x--newtypeof,checked,unchecked,defualt,nameof,delegate,sizeof,stackalloc,x->y (포인터 맴버 엑세스)1괄호()2단항연산자++x, --x, ture,false..3산술 곱*, /4산술 덧셈+-5shift>, >>>6관계형 및 형식테스트, =, is, as7equality==, !==8논리 and&9논리 Xor^10논리 or|11조건부 And&&12조건부 OR||13Null 병합??14조건 연산자c?t:f15할당 및 람다 선언

Language/C# 2024.10.14

[C#] Literal

Lexical structure - C# language specification | Microsoft Learn정수형 리터럴1. 10진수 리터럴 (Decimal Integer Literal)정수 범위: 0 ~ 9예시: 123, 1_000_000 (언더스코어 _ 사용 가능)타입 접미사:U 또는 u: 부호 없는 정수L 또는 l: long 타입 정수UL 또는 ul: 부호 없고 long 타입 정수예시:42U: 부호 없는 정수42L: long 타입 정수42UL: 부호 없고 long 타입 정수2. 16진수 리터럴 (Hexadecimal Integer Literal)정수 범위: 0 ~ 9, A ~ F표기법: 0x 또는 0X로 시작타입 접미사: 10진수와 동일 (U, L, UL)예시:0xFFU: 부호 없는 16진수0..

Language/C# 2024.10.14

[C#] dotNet

.Net FrameworkCLR이라는 공용언어 런타임을 사용해서 다양한 언어로 작성된 코드로 윈도우 데스크탑 애플리케이션을 구축하기 위해 최적화 됨.Net core.Net Framework의 멀티 플랫폼 버전MonoMono는 작은 런타임이 필요할 때 주로 사용되는 .NET 구현Android, macOS, iOS, tvOS 및 watchOS에서 Xamarin 애플리케이션의 성능을 향상하는 런타임주로 작은 사용 공간에 초점을 맞춤또한 Mono에서는 Unity 엔진으로 만든 게임이 동작일반적으로 Mono는 Just-In-Time 컴파일러에서 사용되지만 iOS 같은 플랫폼에 사용되는 전체 정적 컴파일러(Ahead-Of-Time 컴파일) 기능도 제공C++ 프로그램:컴파일 및 링크 과정:C++ 코드 → 컴파일러(c..

Language/C# 2024.10.14

[C#] Reflection

Reflection 이란?런타임에 어셈블리, 모듈, 형식 및 해당 맴버들에 대한 정보를 검사하고 수정할 수 있는 기능변수 형식을 가져오는 리플렉션 예제int i = 42;Type type = i.GetType();Console.WriteLine(type); // System.Int32주요 기능 및 사용 사례형식 정보 검사 : 객체의 형식, 이름, 어셈블리 정보를 런타임에 확인동적 객체 생성 : 런타임에 동적으로 객체를 생성메서드 및 속성 호출 : 동적으로 메서드를 호출하거나 속성값을 읽고 씀특성 검사 : Attribute를 런타임에 확인하여 메타데이터 접근 가능인터페이스나 상속관계 검사 : 객체가 특정 인터페이스를 구현했는지, 기본클레스를 상속받았는지 여부를 런타임에 검사단점컴파일 시에 타입 안정성을 해..

Language/C# 2024.10.14

[C#] Enum

Enum 이란열거형Enum.GetNames vs Enum.GetValues차이점 요약Enum.GetNames:열거형의 이름(문자열) 목록을 반환 (string[]).각 열거형 항목의 이름을 가져옴Enum.GetValues:열거형의 값(정수 또는 해당 열거형 타입) 목록을 반환 (Array).각 열거형 항목에 할당된 값을 가져옴둘이 비슷해보이지만, GetValues는 enum 타입 그 자체의 값을 가져온다. 즉 (int)output 하면 그 값의 숫자를, output.string() 하면 그 값의 이름을 가져온다.함께 사용 예시:public enum Days{ Sunday = 0, Monday = 1, Tuesday = 2, Wednesday = 3, Thursday = 4, ..

Language/C# 2024.10.14