13.6 유사 참조 구조체(C# 7.2)
C# 7.2에서는 스택에만 생성되도록 의도하고 만든 유사 참조 구조체라는 개념이 포함되었다. 사용자 정의 Task 타입과 마찬가지로, 사용자가 유사 참조 구조체를 직접 선언하여 사용하는 경우는 많지 않더라도 향후 수년 안에 출시될 최신 프레임워크들은 내부적으로 이 기능을 상당히 많이 활용하는 방향으로 개선될 것 같다.
우선 유사 참조 구조체의 기본적인 규칙을 살펴보고, 이를 어떻게 사용할 수 있으며 프레임워크 차원에서는 어떤 지원이 있는지 살펴보자. 여기서는 단순한 규칙만을 다루고 있음을 명심해야 한다. 세부적인 내용은 언어 명세서를 참조하기 바란다. 유사 참조 구조체가 스택에서 안정적으로 동작하도록 컴파일러가 어떤 작업을 수행하는지에 대해 관심 있는 개발자는 많지 않겠지만, 무엇을 수행하려는 것인지에 대한 원칙을 이해하는 데는 이만한 내용이 없는 것 같다.
유사 참조 구조체 값은 항상 스택에 존재해야 한다.
유사 참조 구조체를 생성해 보자. 선언 방법은 일반적인 구조체와 크게 다르지 않으며, ref 한정자가 사용되었다는 점에만 차이가 있다.
public ref struct RefLikeStruct
{
----- 일반적인 구조체 멤버
}