오블완 2

내일배움캠프: object와 generic

C#에서 object, generic타입은 모두 유연한 데이터형을 사용하기 위한 타입이다. object는 모든 데이터형의 최상위 타입으로 어떤 데이터 형이든 저장할 수 있는 유연성을 제공한다.  하지만 object를 사용할 때는 값 타입을 참조형으로 변환할 때 박싱/언박싱이 발행하여 성능에 영향이 끼친다. 제네릭 타입의 경우에는 컴파일 타임에 타입을 지정해줘 object에 비해 타입 안전성이 높고, 값 타입을 박싱 / 언박싱 하지도 않아 유연성을 높여준다.  다만, .NET Framework 2.0  보다 낮아 제네릭을 지원하지 않는 경우에는 object 타입을 사용해야할 수도 있다.

내일배움캠프 2024.11.08

내일배움캠프: for문을 통한 AddListener 등록 시 인자 전달 문제 해결 방법

문제 상황Unity에서 for문을 통해 UI 버튼에 이벤트 리스너를 등록하던 중 내가 생각한 값이 아니라 이상한 값이 들어가는 현상이 생겼다. 코드상에서 원인을 찾을 수 없어서 중단점을 통해 확인해보니 메서드에 전달해준 인자 값이 계속 증가한다는 것을 확인 했다. 해당 문제를 해결하기위해 구글링을 통해서 자료를 찾아보니 람다식은 인자를 참조 해서 그 문제가 생긴다는 것을 알았다.  문제 코드 for (int i = 0; i SomeMethod(i));}AddListenr를 통해 인자 값을 넘겨줄 때는 람다식 혹은 델리게이트를 사용해 넘겨줘야하는데 람다식과 델리게이트 모두 참조형으로 값을 가지고 있기 때문에 문제가 발생했다. 해결 코드for (int i = 0; i SomeMethod(index));}..

내일배움캠프 2024.11.07