C#
-
C#] ref, in, out 간단 정리C# 2025. 5. 22. 17:37
struct, enum, 원시타입 자료형 (int, bool, byte, char, float, double, decimal, long, short, uint, ulong, ushort), string 을 참조 타입으로 전달→ 여기서 string은 class형식이지만 참조값을 복사하여 전달함. (string은 불변 객체)ref읽기, 쓰기 모두 가능포인터 대신 사용하는 참조자 (포인터 관련 리스크 최소화)매개변수 전달 시, 초기화 해주지 않으면 에러in읽기 전용. 외부에서 수정 불가매개변수에 const를 쓰고 싶을 때 in을 사용하면 된다.매개변수 전달 시, 초기화 해주지 않으면 에러out쓰기 전용. 값을 반환하기 때문에 매서드 안에서 값을 할당 해주어야 함.매개변수 전달 시, 초기화가 필요 없다. 참고..
-
C#] 람다식 루프 오류 (Closure, Capture)C# 2025. 4. 14. 15:24
1. Capturing (변수 캡처)의미람다식이나 익명 메서드 내부에서 외부 변수(로컬 변수, 매개변수 등)를 사용하는 것외부 변수가 람다식 내부로 캡처(capture) 된다.변수는 복사되는 것이 아니라 참조로 캡처된다. (변수 값이 수정되면 람다식 변수도 수정됨)-> 캡처된 변수는 Heap에 저장됨 2. Closure (클로저)의미변수를 캡처하는 람다 또는 익명 메서드 자체외부 변수를 캡처하고 변수의 수명과 수명 범위를 람다와 함께 연장예시Func CreateClosure(){ int count = 0; return () => { count++; return count; };}var closureFunc = CreateClosure();Console.Wri..