전체 글
-
제네릭 - 박싱/언박싱 - 스택/힙카테고리 없음 2024. 11. 22. 13:33
제네릭이란?C#의 제네릭(Generic)은 데이터 타입을 미리 지정하지 않고코드 작성 시 타입을 파라미터화하여 다양한 데이터 타입을 처리할 수 있게 하는 기능이다. 타입 매개변수 (T)를 기반으로 지정타입과 호환되는 타입만 처리하도록 하고,그렇지 않으면 컴파일 에러를 발생시킨다.(사실 T(Type)는 관례적으로 사용하는 거고, 아무렇게나 이름 붙일 수 있다) 제네릭의 사용 예시제네릭 클래스public class GenericClass{ private T data; public void SetData(T value) { data = value; } public T GetData() { return data; }}// 사용var intInsta..
-
객체 지향 프로그래밍카테고리 없음 2024. 11. 12. 17:46
우선 객체 지향 프로그래밍이 어떤 느낌인지 절차적 프로그래밍과 같이 예시를 들어보면 그 차이점이 보인다.아래 예시는 은행 계좌 관리 시스템을 각각 C(절차적 프로그래밍)와 C++(객체 지향 프로그래밍)으로 구현한 것이다. 1. C (절차적 프로그래밍) #include typedef struct { char owner[50]; double balance;} Account;void deposit(Account* acc, double amount) { acc->balance += amount;}void withdraw(Account* acc, double amount) { if (acc->balance >= amount) { acc->balance -= amount; }..
-
배열의 길이를 2의 거듭제곱으로 만들기공부 2024. 10. 28. 18:23
- 거듭제곱을 하는 방법Math.Pow를 쓸 수도 있지만, *= 와 while을 이용하면 원하는 만큼 커질 때까지 곱셈을 반복할 수 있다. - Array.Copy의 활용 - 빈 array의 생성 size = 3; int[] arr = new int[size]; 는 되는데, int[] arr = new int[size]{};는 안된다. 둘의 문법이 많이 다르기 때문이다. int[] arr = new int[size]; 배열을 자동으로 기본값(0)으로 초기화하는 문법이다.size는 런타임 중에 결정되어도 상관없다. int[] arr = new int[size]{};배열을 선언하고 명시적으로 초기값을 제공하고자 할때 쓰는 문법이다.컴파일러가 size를 알아야하기 때문에 size는 컴파일 시간 상수(cons..
-
화면 중앙에 Ray 쏘기(카메라에서 ray 쏘기)Unity 2024. 5. 7. 17:25
이런 느낌으로 Ray를 쏴서 Raycasting 하고 싶다. 화면 정중앙에서 발사되는 Ray는 Camera.ViewportPointToRay(Vector3 pos)로 만들 수 있다. Camera.ViewportPointToRay(Vector3 pos) Camera.ViewportPointToRay(Vector3 pos)는 카메라가 보는 화면에서 pos를 관통하는 Ray를 반환한다. pos는 카메라 기준으로 좌측하단이 (0,0), 우측 상단이 (1,1)이다. 즉 pos를 (0.5, 0.5)로 설정하면 카메라 중앙을 관통하는 Ray를 만들 수 있다. 이렇게 만들어진 Ray를 이용해 RayCasting을 하면 된다.
-
배열이 동일한지 비교C# 2024. 4. 1. 00:24
배열이 동일한지 비교하는 방법은 크게 3가지가 있다. 일단 하나는 반복문을 통해서 각각의 배열이 동일 인덱스에 동일한 요소를 가지고 있는지 확인하는 방법이다... 이 방법은 매우 번거롭다. 다른 방법으로는 Equals와 SequenceEqual 메서드를 사용하는 방법이 있다. Object.Equals(Object?) 두 오브젝트가 같은 값을 가지는지 boolean을 반환하여 알려준다. null값을 가지더라도 비교할 수 있다. 그런데 Equals는 배열에 사용하면 이상한점을 발견할 수 있다. 분명 두 배열의 모든 요소가 같은데 False를 반환한다. 사실 Equals를 참조형식 자료형에 사용하면, 두 변수가 같은 값을 참조하고 있는지 검사한다. arr3에 arr를 참조 복사 했더니 Equals가 True를..