2024/08 7

[C#] 참조 매개변수 전달 (ref, out)

C#에서 ref와 out 키워드는 메서드에서 매개변수를 참조로 전달할 때 사용됩니다. 일반적으로 메서드는 매개변수의 값을 복사하여 전달하는 값 전달 방식을 사용하지만, ref와 out을 사용하면 참조 전달이 가능합니다. 이를 통해 메서드가 호출된 변수의 값을 직접 변경할 수 있습니다. 이 글에서는 ref와 out 키워드의 사용법, 차이점, 그리고 예제를 통해 알아보도록 하겠습니다!   1. ref 키워드란?ref(Reference)키워드는 메서드에 매개변수를 참조로 전달할 때 사용됩니다. 이 키워드를 사용하면 메서드가 호출된 변수의 기존 값에 접근하고, 이를 수정할 수 있습니다. 즉, 매개변수는 복사본이 아닌 실제 변수에 대한 참조를 전달받기 때문에, 메서드 내부에서 변경된 값이 메서드 외부에서도 반영이..

CS 공부 2024.08.31

[Unity] 속성(Attribute)

Unity에서 Attribute(속성)는 클래스, 메서드, 변수 등의 요소에 메타데이터를 추가하여, 특정 기능을 부여하거나 Unity 에디터에서의 동작을 제어하는 데 사용됩니다. 이 글에서는 Unity에서 자주 사용되는 Attribute에 대해 설명하며, 각각의 사용 방법과 예제를 통해 알아보겠습니다.   1. Attribute(속성)란?Attribute는 클래스, 메서드, 필드 또는 프로퍼티에 추가되는 메타데이터입니다. 이 메타데이터는 런타임 또는 컴파일 타임에 특정 기능을 적용하거나, Unity 에디터에서의 동작을 변경하는 역할을 합니다. 예를 들어, Unity에서 SerializeField, Range, Tooltip과 같은 Attribute는 에디터에서 변수를 시각화하고 편집하는 방식을 제어합니다..

Unity 공부 2024.08.24

[C#] 오버로딩과 오버라이딩 (Overloading & Overriding)

C#은 객체 지향 프로그래밍 언어로, 다형성(Polymorphism)을 지원합니다. 다형성의 중요한 두가지 개념이 바로 오버로딩(Overloading)과 오버라이딩(Overriding)인데요. 이 글에서는 오버로딩과 오버라이딩이 무엇인지, 그 특징과 사용 이유, 그리고 실제 예제와 함께 사용하는 방법에 대해 알아보겠습니다.   1. 오버로딩(Overloading) 이란?오버로딩(Overloading)은 같은 이름의 메서드를 여러 개 정의하는 기법으로, 메서드의 매개변수의 수나 타입을 다르게 설정하여 동일한 메서드 이름을 여러 용도로 사용할 수 있게 해줍니다. C#에서는 메서드 오버로딩뿌만 아니라 생성자 오버로딩도 지원합니다. 오버로딩을 통해 함수 이름을 재사용할 수 있어 코드의 가독성과 유지보수성을 높일..

CS 공부 2024.08.20

[C#] 람다식(Lambda Expression)

C#에서람다식(Lambda Expression)은 코드의 간결성과 가독성을 높여주는 강력한 기능입니다. 이번 글에서는 람다식이 무엇인지, 어떤 특징이 있는지, 왜 사용하는지, 그리고 어떻게 사용하는지를 예제 코드와 함께 설명하겠습니다.  1. 람다식이란?람다식은 익명 함수(Anonymous Function)의 한 종류로서, 코드를 간단하게 표현하기 위해 사용됩니다. 이름 없는 메서드를 간단히 표현할 수 있으며, 함수를 매개 변수로 전달하거나 즉시 실행해야 하는 경우에 유용합니다. 람다식은 다음과 같은 형식으로 표현됩니다:(parameters) => expression여기서 "parameters'는 입력 매개변수를, 'expresstion'은 실행할 코드 블록을 나타냅니다. 일반적으로 람다식은 짧고 간단한..

CS 공부 2024.08.16

[C#] 변수 종류와 키워드

C#은 객체 지향 프로그래밍 언어로, 다양한 종류의 변수를 지원합니다. 변수는 데이터의 값을 저장하기 위해 사용되며, 변수의 범위와 수명에 따라 전역 변수, 지역 변수, 정적 변수, 매개 변수 등으로 나뉩니다. 또한 readonly와 const 키워드는 변수의 불변성을 보장하기 위해 사용됩니다. 이번 글에서는 각 변수의 특성과 사용법에 대해 자세히 설명하고, 관련 예제 코드를 함께 보여드리겠습니다.  1. 전역 변수(Global Variable)전역 변수는 클래스 내부, 메서드 외부에 선언되어 클래스의 모든 메서드에서 접근할 수 있는 변수입니다. 그러나 이 변수는 클래스의 인스턴스와 밀접하게 연관되어 있으며, 클래스의 인스턴스가 생성될 때 힙(Heap) 메모리에 할당되고, 인스턴스가 소멸될 때 함께 해제..

CS 공부 2024.08.09

[C#] 클래스와 구조체 (Class & Structure)

C#은 객체 지향 프로그래밍(OOP)을 기반으로 하는 언어로, 클래스와 구조체는 데이터를 정의하고 조작하는 두 가지 주요 방식 입니다. 둘 다 데이터와 메서드를 포함할 수 있지만, 사용되는 방식과 목적에는 중요한 차이점이 있습니다.   1. 클래스(Class)클래스는 객체 지향 프로그래밍의 핵심 개념으로, 객체의 청사진(buleprint) 역할을 합니다. 클래스는 데이터(필드)와 기능(메서드)을 포함할 수 있으며, 이를 통해 객체를 생성할 수 있습니다. 참조 타입: 클래스는 참조 타입입니다. 객체는 힙(heap) 메모리에 할당되며, 객체에 대한 참조(reference)가 변수에 저장됩니다.상속 가능: 상속을 통해 다른 클래스의 멤버를 확장할 수 있습니다.생성자: 생성자를 통해 객체가 생성될 때 초기화할 ..

CS 공부 2024.08.04

[Unity] 코루틴(Coroutine)

1. Unity 코루틴(Coroutine)이란?유니티(Unity)에서 코루틴(Coroution)은 프레임 간에 멈추고 재개할 수 있는 특별한 형태의 메서드입니다. 코루틴은 특정 시간 동안 대기하거나 비동기 작업을 수행할 때 유용하게 사용할 수 있습니다. 유니티에서는 코루틴을 사용하여 비동기적인 작업을 처리할 수 있으며, 이는 게임 개발에서 자주 사용됩니다.   주요 특징1. 메인 스레드에서 실행Unity의 코루틴은 메인 스레드에서 실행됩니다. 이는 코루틴이 Unity API와 상호작용할 수 있게 해주며, 비동기 작업을 쉽게 처리할 수 있게 합니다. 따라서, 코루틴 내에서 Unity 오브젝트에 안전하게 접근할 수 있습니다. 2. 비동기 작업코루틴은 비동기적으로 작업을 처리할 수 있게 해주며, 긴 작업을 여..

Unity 공부 2024.08.04