728x90

C# 67

[C#] 클래스 구조체 차이

1. 기본 개념C#을 공부하다 보면 class와 struct의 차이에 대해 혼란스러울 수 있다.둘 다 데이터를 담는 틀이라는 점은 같지만 동작 방식과 사용 목적이 다르다.이 글에서는 클래스와 구조체의 차이를 정리하고 언제 어떤 걸 사용하면 좋은지, 그리고 구조체의 한계점까지 알아보자. 🔹시작전 각각의 개념을 한번 더 복습해보자. ✅ 클래스란?참조형(reference type)new 키워드로 인스턴스를 생성힙(Heap) 메모리에 저장됨변수에 객체의 참조(주소) 를 저장상속, 다형성 등 객체 지향 프로그래밍(OOP) 특징을 활용할 수 있음class Person { public string Name; public int Age;} ✅ 구조체란?값형(value type)new 없이도 사용 가능..

[C#] 클래스

1. 클래스(Class)란?클래스(붕어빵틀)는 객체(붕어빵)를 만들기 위한 설계도이다.프로퍼티(속성), 필드(데이터), 메서드(동작)를 포함하여 하나의 개념 또는 기능을 캡슐화한다.class Person{ public string Name; public int Age; public void SayHello() { Console.WriteLine($"안녕하세요, 저는 {Name}이고 {Age}살입니다."); }}🔹객체 생성Person p = new Person(); // 클래스는 new 키워드로 생성해야 함p.Name = "도치";p.Age = 25;p.SayHello(); // 출력: 안녕하세요, 저는 도치이고 25살입니다. 2. 클래스의 주요 구성요소 클래..

[C#] 구조체

1. 구조체(struct)란?C#에서 struct는 값 타입(Value Type)으로, 여러 개의 변수를 하나로 묶어 표현할 수 있는 사용자 정의 데이터 형식이다. 클래스처럼 필드, 메서드, 생성자 등을 가질 수 있지만, 간단한 데이터 묶음을 만들 때 사용되는 가벼운 구조이다.구조체의 멤버는 변수, 메서드로 구성될 수 있다. 📝 구조체 예시struct Point { public int X; public int Y; public Point(int x, int y) { X = x; Y = y; } public void Print() { Console.WriteLine($"X: {X}, Y: {Y}"); }} 🔹구조체를 new로 생성하는..

[C#] 접근 제한자와 반환 타입

1. 접근 제한자(Access Modifier)란?클래스, 메서드, 변수 등이 어디서 접근 가능한지를 정하는 키워드캡슐화를 통해 외부에 노출되는 범위를 제어하여 코드의 안정성과 보안성을 높이는 역할을 한다. 제한자설명public모든 클래스에서 접근 가능private해당 클래스 내부에서만 접근 가능protected해당 클래스와 상속받은 클래스에서 접근 가능internal같은 어셈블리(프로젝트) 내에서만 접근 가능 📝 예시public class Person { private string name; public void SetName(string newName) { name = newName; }}→ name은 외부에서 직접 접근 불가능하지만, SetName() 메서드를 통해 제..

C#/기초 2025.04.17

[C#] 재귀함수(Recursion)

1. 재귀함수란?함수 내부에서 자기 자신을 다시 호출하는 함수를 말한다.복잡한 문제를 더 작은 문제로 나누어 해결할 때 유용하다. void SayHello(int count) { if (count == 0) return; Console.WriteLine("안녕하세요!"); SayHello(count - 1); // 자기 자신 호출} 2. 재귀함수의 구조모든 재귀함수는 두 가지 구조를 갖는다.기저 조건(Base Case): 재귀를 멈추는 조건재귀 호출(Recursive Call): 자신을 다시 호출하는 부분int Factorial(int n) { if (n == 1) return 1; // 기저 조건 return n * Factorial(n - 1); // 재..

C#/함수 2025.04.17

[C#] ref, out

1. ref와 out이란?C#에서 기본적으로 함수에 인자를 전달하면 값이 복사되어 전달된다.하지만 ref, out 키워드를 사용하면 값이 아닌 변수 그 자체를 참조로 넘길 수 있다.즉, 함수 안에서 값을 변경하면 원래 변수도 같이 변경된다..! 2. ref 키워드함수 호출 전에 반드시 초기화 되어 있어야 함함수 안에서 값을 변경하면 호출한 쪽 변수에도 반영됨void DoubleValue(ref int num) { // return값이 없고 값만 바꿈 num *= 2;}int a = 10;DoubleValue(ref a); // 넘길때도 ref키워드를 붙여줘야한다Console.WriteLine(a); // 출력: 20 3. out 키워드초기화하지 않아도 호출 가능함수 내부에서 반드시 값을 할당해..

C#/함수 2025.04.17

[C#] 메서드 오버로딩(Method Overloading)

1. 메서드 오버로딩이란?같은 이름의 메서드를 매개변수 형태에 따라 여러 개 정의하는 것즉, 이름은 같지만 매개변수의 개수, 타입이 다르면 여러 메서드를 만들 수 있다. ✔ 컴파일러가 자동으로 매개변수에 맞는 메서드를 찾아 실행한다. 📝예시class Calculator { public int Add(int a, int b) { // 정수 return a + b; } public double Add(double a, double b) { // 실수 return a + b; } public int Add(int a, int b, int c) { // 숫자세개(매개변수세개) return a + b + c; }}Calculator cal =..

C#/함수 2025.04.17
728x90