728x90

C# 67

[C#] 제네릭을 사용하기 어려운 경우

지난 글([C#] 왜 object형식외에 다른 형식을 배울까?)에서 object[]배열은 제네릭을 사용하기 어려운 경우에 사용한다고 했다.그렇다면 제네릭을 사용하기 어려운 경우는 언제일까? 런타임에 타입이 결정되는 경우✔ 컴파일 타임에 타입을 알 수 없고, 런타임에서만 결정될 때✔ 예를 들어, JSON 파일을 읽거나, Reflection을 사용할 때 📌 제네릭을 쓰려면 모든 타입을 미리 정해야 하지만, JSON 데이터를 받을 때는 타입이 다양할 수 있다 Reflection을 사용할 때✔ C#의 Reflection을 사용하면 타입을 동적으로 다룰 수 있음✔ 제네릭은 컴파일 타임에 타입이 정해져야 하지만, Reflection은 런타임에서 타입을 처리 더보기Reflection(리플렉션)이란? C# 프로그램이..

[C#] 왜 object형식외에 다른 형식을 배울까?

지난 글([C#] 배열의 기본 자료형)에서 object[]배열은 모든 자료형을 저장할 수 있는 배열이라고 설명했다.그런데, 모든 자료형을 저장할 수 있는데 왜 다른 형식을 배울까? ❓(Think)그럼 왜 object형식외에 다른 형식을 배울까?1. 박싱(Boxing)과 언박싱(Unboxing)이 발생함 ✔ object는 참조 타입이라서, 값 타입(int, double 등)을 저장할 때 박싱(Boxing)이 발생✔ 박싱된 값을 다시 사용할 때 언박싱(Unboxing)이 필요✔ 성능이 떨어질 수 있음 📝 박싱과 언박싱 예제object obj = 10; // int → object (박싱)int num = (int)obj; // object → int (언박싱)Console.WriteLine(num); ..

[C#] 배열의 기본 자료형

기본 개념배열은 같은 자료형의 데이터를 여러 개 저장할 수 있는 자료 구조C#에서는 배열을 사용할 때 다양한 기본 자료형(Primitive Type)을 활용할 수 있다.배열의 자료형은 배열에 저장되는 데이터의 타입을 의미한다. 요약자료형설명예제int[]정수 배열{1, 2, 3, 4, 5}double[]소수점 포함 실수 배열{1.1, 2.2, 3.3}float[]32비트 실수 배열 (f 필수){1.1f, 2.2f, 3.3f}char[]문자 배열{'A', 'B', 'C'}string[]문자열 배열{"Hello", "World"}bool[]논리값 배열{true, false, true}object[]여러 타입을 담을 수 있는 배열{1, "Text", 3.14, false} 정수형 배열 (int[])✔ int는 ..

[C#] 배열의 개념

배열이란?배열(Array)이란 같은 자료형을 가진 여러 개의 데이터를 하나의 변수처럼 관리할 수 있는 자료 구조이다.✔ 여러 개의 값을 저장할 수 있음✔ 인덱스를 이용해 각 요소에 접근 가능✔ 0부터 시작하는 인덱스를 가짐 배열을 사용하는 이유 배열 없이 여러 값을 저장하는 경우int num1 = 10;int num2 = 20;int num3 = 30;📌 변수를 하나씩 선언해야 하므로 비효율적 💡 배열을 사용하면?int[] numbers = {10, 20, 30};✅ 배열을 이용하면 데이터를 효율적으로 관리 가능 배열 선언 및 초기화(1) 배열 선언자료형[] 배열이름; 📝 예제int[] numbers;📌 int형 데이터를 저장하는 배열을 선언했지만, 아직 메모리를 할당하지 않았음(2) 배열 선언 ..

[C#] 예외처리 throw

기본 개념throw 문은 예외(오류)를 강제로 발생시킬 때 사용✔ 특정 조건에서 직접 예외를 발생시키고 싶을 때✔ try-catch 블록과 함께 사용하여 예외 처리 가능✔ 기존 예외를 다시 던질 수도 있음 기본 사용법throw new 예외클래스("예외 메시지"); 직접 예외 발생시키기void CheckAge(int age){ if (age 💡 결과Unhandled exception. System.ArgumentException: 나이는 음수가 될 수 없습니다.📌 age 이면 throw 문이 실행되어 예외 발생 & 프로그램 종료 try-catch와 함께 사용try{ throw new InvalidOperationException("잘못된 연산입니다.");}catch (Exception ex)..

C#/제어문 2025.03.24

[C#] 예외처리 try-catch-finally

기본 개념try-catch-finally는 예외(오류) 처리를 위한 문법✔ 프로그램이 예상치 못한 오류로 중단되지 않도록 보호✔ try 블록에서 예외 발생 시 catch에서 처리✔ finally 블록은 예외 발생 여부와 관계없이 실행 (선택 사항) 기본 구조try{ // 예외가 발생할 가능성이 있는 코드}catch (Exception ex){ // 예외 발생 시 실행되는 코드}finally{ // 항상 실행되는 코드 (선택 사항)} try-catch 예제try{ int a = 10; int b = 0; int result = a / b; // 0으로 나누기 → 예외 발생 Console.WriteLine(result); // 실행되지 않음}catch (Divid..

C#/제어문 2025.03.24

[C#] 분기문 return

기본 개념return 문은 메서드(함수) 실행을 중단하고 값을 반환할 때 사용✔ 메서드를 즉시 종료하고 반환값을 지정 가능✔ 반환값이 없는 경우(void)에도 사용 가능 return 기본 예제 (값 반환)int Add(int a, int b){ return a + b; // 두 수의 합을 반환}int result = Add(5, 3);Console.WriteLine(result); // 출력: 8📌 return a + b; → 메서드 실행 종료 & 결과 반환📌 Add(5, 3) 호출 시 8 반환 void 메서드에서 return 사용void PrintMessage(){ Console.WriteLine("Hello!"); return; // 여기서 실행 종료 (없어도 자동 종료됨)}Pri..

C#/제어문 2025.03.24
728x90