데브허브 | DEVHUB | The Right Way to Use Structs #csharp #dotnet #codingThe Right Way to Use Structs #csharp #dotnet #coding
- C#의
struct는 본질적으로 변경되지 않도록 설계되었지만, 코드를 통해 내부 값을 변경하려 할 때 예상치 못한 동작을 보일 수 있습니다. 🚫
struct의 메서드 내에서 멤버 변수를 직접 수정하는 방식은 struct가 값 타입(value type)이기 때문에 원본이 아닌 복사본에 대해 작업이 이루어져 실제 원본 struct는 변경되지 않습니다. 🐛
- 이로 인해
struct의 값을 변경하는 메서드를 호출해도, 호출 전후의 struct 값이 동일하게 유지되는 현상이 발생합니다. 🔄
struct를 올바르고 안전하게 사용하는 방법은 이를 불변(immutable)하게 만드는 것입니다. 🛡️
struct의 값을 변경해야 할 때는, 기존 struct를 직접 수정하는 대신 변경된 값을 포함하는 새로운 struct 인스턴스를 생성하여 반환하도록 메서드를 구현해야 합니다. ✨
- 반환된 새로운
struct 인스턴스를 변수에 할당함으로써, 원하는 변경 사항을 반영하고 struct의 불변성 원칙을 효과적으로 유지할 수 있습니다. ✅