Record

    [C# 12와 .NET 8] 5. OOP (Object-Oriented Programming)

    [C# 12와 .NET 8] 5. OOP (Object-Oriented Programming)

    C#에서는 OOP를 통해 자신만의 type을 만들 수 있습니다. 이를 위해 data를 저장하기 위한 field와 동작을 수행하는 method를 포함해 type이 가질 수 있는 member들에 대해 encapsul화와 같은 OOP개념을 사용해 볼 것입니다. 여기에 더해 tuple syntax support, out variables, inferred tuple names 그리고 default literals과 같은 언어기능과 간단한 동작을 수행하기 위한 연산자와 지역함수를 정의하는 방법도 함께 살펴보고자 합니다. 1. OOP (Object-Oriented Programming) 현실 세계의 개체는 자동차나 사람과 같은 것이지만 programming에서의 개체는 제품이나 은행 계좌와 같이 현실 세계의 무언가..

    [C# 11 과 .NET 7] 5. OOP (Object-Oriented Programming)

    [C# 11 과 .NET 7] 5. OOP (Object-Oriented Programming)

    C#에서는 OOP를 통해 자신만의 type을 만들 수 있습니다. 이를 위해 data를 저장하기 위한 field와 동작을 수행하는 method를 포함해 type이 가질 수 있는 member들에 대해 encapsul화와 같은 OOP개념을 사용해 볼 것입니다. 여기에 더해 tuple syntax support, out variables, inferred tuple names 그리고 default literals과 같은 언어기능과 간단한 동작을 수행하기 위한 연산자와 지역함수를 정의하는 방법도 함께 살펴보고자 합니다. 1. OOP (Object-Oriented Programming) 현실 세계의 개체는 자동차나 사람과 같은 것이지만 programming에서의 개체는 제품이나 은행 계좌와 같이 현실 세계의 무언가..

    [C#] C#과 OOP(Object-Oriented Programming) - 7. 레코드(Record)

    [C#] C#과 OOP(Object-Oriented Programming) - 7. 레코드(Record)

    7. Record 사용 위 예제에서 Car Class의 displacement Property는 객체가 생성되고 난 후 초기값이 결정되고 나서도 언제든 값이 바뀔 수 있습니다. Car sedan = new(); sedan.displacement = 999; Console.WriteLine($"{ sedan.displacement }"); sedan.displacement = 3000; Console.WriteLine($"{ sedan.displacement }"); //999 //3000 하지만 객체의 인스턴스가 생성되는 순간에만 값이 결정되고 그다음 값이 바뀌지 말아야 하는 경우라면 Property의 set을 init으로 사용할 수 있습니다. public class Car { public int dis..