목록Unity (16)
나만의 작은 도서관
out, ref 키워드C#에서 out과 ref 키워드는 메서드의 매개변수를 참조로 전달하기 위해 사용한다. 두 키워드 모두 매개변수가 호출된 메서드 내부와 외부에서 공유되도록 하지만, 사용 목적과 동작 방식에서 몇 가지 중요한 차이점이 있다. out 키워드값 초기화 필요 없음: 메서드에 전달하기 전에 초기화되지 않은 변수를 사용할 수 있다.메서드 내부에서 반드시 초기화해야 함: 호출된 메서드에서 out 매개변수에 값을 할당하지 않으면 컴파일 오류가 발생한다.void Divide(int a, int b, out int quotient, out int remainder){ quotient = a / b; remainder = a % b;}int quotient, remainder;Divide(7,..
값형과 참조형대부분의 프로그래밍 언어에서 그렇듯, C#에서도 변수에 데이터를 저장하는 두 방식, 값형과 참조형이 있다. 값형(Value Type)값형은 변수에 값을 직접 저장한다. 변수가 실제 데이터를 보유하고 있으며, 해당 변수를 다른 변수에 할당하거나 전달할 때는 값이 복사된다. 값형은 변수 내 데이터를 수정해도 다른 변수에 영향을 주지 않는다. 기본 데이터 타입(int, float, double 등)들이 값형에 해당한다. 참조형(Reference Type)참조형은 변수가 데이터의 메모리 주소를 참조하여 저장한다. 변수가 실제 데이터를 가리키는 참조를 갖고 있으며, 다른 변수에 대입 시 참조값(메모리 주소)가 복사된다. 참조형은 변수 내 데이터를 수정하면 다른 변수에도 영향을 준다. 클래스, 배열, ..
인터페이스(Interface)인터페이스는 클래스가 반드시 구현해야하는 멤버들을 정의한 구조를 의미한다. 인터페이스는 클래스가 구현해야 할 메서드, 속성, 이벤트 등을 정의한다. 인터페이스의 특징구현이 없음: 인터페이스는 정의를 할 뿐, 실제 구현은 인터페이스를 상속한 클래스에서 작성된다.구현의 강제성 부여: 인터페이스를 상속할 경우, 클래스는 반드시 인터페이스에 정의된 모든 멤버를 구현해야한다.다중 상속 지원: 클래스에 대한 다중 상속이 불가능한 것과 달리 인터페이스는 다중 상속이 가능하다.접근 제한자 없음: 인터페이스 멤버는 항상 암시적으로 public이며, 접근 제한자를 사용할 수 없다.다형성: 인터페이스를 사용하면 다양한 클래스가 동일한 방식으로 처리될 수 있다.인터페이스를 왜 쓰는가인터페이스를 ..
상속(Inheritance) 상속은 기존의 클래스(부모 클래스 또는 상위 클래스)를 확장하거나 재사용하여 새로운 클래스를 정의하는 것을 의미한다. 상속받은 클래스는 부모 클래스와 동일한 멤버(필드, 메서드, 속성 등)를 상속받으며, 상속받은 멤버들을 사용할 수 있게된다. C#에서 상속은 상속받을 클래스 이름 오른쪽에 ': [부모_클래스_이름]'을 추가하여 상속한다. 선언부 예제// 부모 클래스public class Animal{ public string Name { get; set; } public int Age { get; set; } public void Eat() { Console.WriteLine("Animal is eating."); } public ..
클래스(Class)클래스는 객체를 생성하기 위한 청사진(설계도)과 같다. 클래스에 속성과 동작을 정의하여 객체를 체계적으로 만들고 관리할 수 있다. C#에서는 클래스는 class라는 키워드를 통해 선언한다.class Person{ // code...} 클래스의 주요 구성 요소1. 필드(Fields)필드는 클래스에서 데이터를 저장하기 위한 변수이다. 객체의 특징이나 속성을 표현하며, 클래스의 멤버 변수로 선언된다.class Person{ public string name; // public 필드 private int age; // private 필드} 접근 제한자(Access Modifier)접근 제한자(Access Modifier)는 클래스, 필드, 메서드 등의 접근 가능한 범위를 지..
배열(Array)배열은 동일한 자료형의 값들이 연속적으로 저장되어 있는 자료구조이다. 정적인 메모리이기 때문에 이미 크기가 정해진 배열은 크기를 변경할 수 없다. 선언// 선언: 데이터_타입[] 배열_이름; int[] arr; 다양한 초기화 방법// 선언 + 초기화(값 지정이 없을 시, 기본값으로 초기화. int는 0)int[] arr1 = new int[5];// 선언 + 값 지정 초기화int[] arr2 = new int[5] { 1, 2, 3, 4, 5 };// 선언 + 값 지정 초기화(중괄호 초기화 시, new int[5] 생략가능)int[] arr3 = { 1, 2, 3, 4, 5 };// Array클래스의 메서드를 사용한 초기화int[] arr4 = new int[5];Array.Fill(a..