C#에서 클래스(Class)와 구조체(Struct)는 매우 비슷해 보이지만, 실제로는 메모리 구조부터 사용 목적까지 완전히 다른 두 자료구조입니다. 실무에서도 둘의 차이를 잘 이해해야 적절한 선택을 할 수 있습니다. 1️⃣ 공통점 둘 다 사용자 정의 타입(User-Defined Type)이다. 필드(Field), 메서드(Method), 속성(...
✅ 1. 공용 유틸리티 클래스 (Utility Class)가장 대표적인 static 사용 예상태가 필요 없고 “기능만” 제공하는 경우.📌 문자열 유효성 검사 유틸public static class StringUtil{ public static bool IsEmp
C#에서 static 메서드 vs 인스턴스 메서드 완벽 정리 C#을 학습하거나 실무 개발을 하다 보면 가장 많이 헷갈리는 개념 중 하나가 static 메서드와 인스턴스 메서드입니다. 이 글에서는 두 개념의 차이, 예제, 실무 적용 기준까지 한 번에 정리합니다. 🔥 1. static 메서드(정적 메서드)란? static 메서드는 객체 생성 없이 호출...
🚀 1. 생성자(Constructor) 개념 ✔ 생성자란? 클래스를 new로 만들 때 가장 먼저 자동 실행되는 메서드입니다. 즉, 객체를 초기화하는 역할을 합니다. ✔ 생성자의 특징 클래스 이름과 동일하다 반환형이 없다(void도 없음)
🔥 1. 생성자 오버로드란? 생성자 오버로드(Constructor Overloading)란 하나의 클래스에 여러 개의 생성자를 만들어서, 상황에 따라 다른 방식으로 초기화할 수 있게 하는 것입니다. public class Person { public Person() { } public Person(string name) { } p...
🚀 1. 오버로드(Overload)✔ 정의같은 이름의 메서드를 매개변수만 다르게 여러 개 정의하는 것= “메서드 이름은 같아도 된다. 대신 매개변수 조합만 다르면 된다.”✔ 조건아래 중 하나라도 다르면 오버로드 가능함:매개변수 개수 다름매개변수 타입 다름매개변수 순서
✅ 1. 오버로드(Overload) — 실무 예시 오버로드는 “같은 기능을 다양한 입력으로 처리”할 때 사용합니다. ERP · 백엔드 · 라이브러리 개발에서 가장 많이 쓰이는 기능입니다. ✔ 예시 1) 파일 저장 기능 (여러 입력 지원) public class F
C# 배열(Array)과 IEnumerator 완전 정리 body { font-family: "Segoe UI", system-ui, -apple-system, sans-serif; line-height: 1.6; max-width: 900px; mar
C# Stack 개념 쉽게 이해하기 body { font-family: 'Segoe UI', sans-serif; line-height: 1.7; max-width: 900px; margin: auto; padding: 20px; } h1, h2, h3 { color: #333; } pre { background: #f4f4f4;...
Front 사람1 사람2 사람3 RearDequeue() → 사람1 나감Front 사람2 사람3 RearEnqueue(사람4)Front 사람2 사람3 사람4 Rear출력:Enqueue(10)Front → 10 ← RearEnqueue(20)
1. delegate 한 줄 정의 delegate = 메서드를 가리키는 변수 타입 우리가 평소에 쓰는 변수는 이런 느낌이다: int x = 10; // x에는 숫자 10이 들어있음 string s = "ABC"; // s에는 문자열 "ABC"가 들어있음 델리게이트는 이렇게 생각하면 된다: MyD...
1. 델리게이트 개념 복습 익명 델리게이트를 이해하려면, “델리게이트 = 메서드를 가리키는 변수 타입”이라는 개념을 먼저 짚고 가야 한다. delegate bool NumberTest(int n); // int 하나 받아서 bool(true/false)을 반환하는 메서드를 가리킬 수 있는 타입 이제 이 델리게이트 타입을 이용해 이...
이 글에서는 델리게이트 복습 → Func → Action → 기존 delegate와 비교 → LINQ에서의 사용 순서로 정리해본다. 1. 먼저 delegate 개념 한 줄 복습 Func와 Action을 이해하려면, 일단 델리게이트(delegate)를 알고 있어야 한다. 델리게이트는 이렇게 요약할 수 있다: ...
1. 람다 / 람다식이 뭐냐? 어렵게 생각할 필요 없이, 딱 이렇게 기억하면 된다. 람다(람다식) = 이름 없는 작은 함수를 간단하게 표현한 문법 예를 들어, 이 한 줄: x => x * 2 의미를 풀어 보면, 입력: x (정수라고 가정) 출력: x * 2 (두 배) 즉 “정수 ...
1. Predicate<T> 간단 복습 먼저 Predicate<T>가 뭔지 한 줄로 다시 짚고 가자. Predicate<T> = T 하나를 받아서 bool을 반환하는 “조건 함수” 델리게이트 타입 C#
1. Predicate<T> 한 줄 정의 먼저 결론부터 보자. Predicate<T> = T 하나를 받아서 bool을 반환하는 델리게이트 타입 C#에서 실제 정의는 이렇게 생겼다. public delegate bool Predicate<in T>(T obj); 느낌상 이런 거랑 비슷하...
1. LINQ 한 줄 정의 LINQ = C# 코드 안에서 컬렉션(배열, List, DB데이터 등)을 SQL처럼 깔끔하게 필터/정렬/변환/집계하는 기능 원래는 이런 식으로 썼던 코드를, int[] numbers = { 3, 5, 4, 2, 6, 7, 8 }; List<int> evens = new List<int&g...
File.ReadAllText / WriteAllText 같은 간단 방법 FileStream, StreamReader, StreamWriter 같은 스트림 기반 방식 BinaryReader, BinaryWriter를 사용하는 이진 파일 Seek을 이용한 임의 접근(Random Access) ReadAsync, Writ...
1. 형변환이란? 형변환(캐스팅) = 어떤 타입의 값을 다른 타입처럼 취급하는 것 예를 들면: int i = 10; double d = i; // int → double 이렇게 int 값을 double 변수에 넣는 것도 형변환이다. C#에서는 크게 이런 종류들이 자주 나온다. 묵시적 형변환 (im...
1. 동기 vs 비동기부터 직관적으로 이해하기 1-1. 동기(synchronous) – 줄 서서 한 줄씩 처리 동기 코드는 “한 줄이 끝나야 다음 줄로 넘어가는 방식”이다. Console.WriteLine("1. 시작"); DoWork(); // 여기서 이 일이 끝날 때까지 멈춰 있음 Console.WriteLine("2. 끝...
1. .NET BCL에 추가된 async 메서드 1-1. BCL + async 메서드란? 먼저 BCL(Base Class Library)를 한 줄로 정리하면: .NET이 기본으로 제공하는 표준 라이브러리 묶음 (예: System.IO, System.Net.Http, System.Data, System.Threading.Task...
1. 한 줄 정의 async 메서드나 람다 선언부에 붙이는 키워드. “이 메서드는 비동기 스타일로 작성되었고, Task 또는 Task<T>를 반환할 거야” 라는 표시. await 메서드/람다 몸통 안에서 쓰는 키워드(연산자). “이 비동기 작업(Task)이 끝날 때까지 비동기적으로 기다렸다가, ...
1. 형식 매개변수 제약조건이란? 기본적인 제네릭 클래스는 이렇게 생겼다: class MyClass<T> { public T Value; } 여기서 T에는 어떤 타입이든 들어갈 수 있다. var a = new MyClass<int>(); var b = new MyClass<string&g...
1. dynamic 한 줄 정의 보통 int, string 같은 정적 타입들은: 컴파일 시점에 타입이 확정되고 그 타입 기준으로 “이 멤버를 써도 되는지/안 되는지”를 컴파일러가 다 검사한다 그런데 dynamic은 이렇게 행동한다: “지금 컴파일할 땐 타입 검사하지 말고, 실행할 때 실제 타입을 보고...