C# - 클래스와 구조체의 차이
·
C#
이전까지의 글에서 클래스(Class)와 구조체(Struct)에 대해서 다뤘었다.해당 글에서도 둘의 차이에 대해 비교해 보았지만 이번 글에서는 이 차이점만을 다뤄보려 한다. 값 타입 (Value type) vs 참조 타입 (Reference Type) 값 타입 (Value Type)스택(Stack)에 저장되는 데이터데이터를 복사해서 전달독립된 값을 가지므로, 다른 변수에 복사해도 원본과 무관int a = 10;int b = a; // 값 복사b = 20;Console.WriteLine(a); // 10Console.WriteLine(b); // 20 참조 타입 (Reference Type)힙(Heap)에 객체가 저장되고, 스택에는 그 주소(참조)만 저장변수를 복사하면, 참조가 복사되므로 같은 객체를 가리킴..
C# - 클래스(Class) & 객체지향
·
C#
드디어 클래스에 대해서 공부해볼 것이다.우선 클래스는 사용법 자체 보다는 개념이 중요하다.개념이 잡히지 않으면 결국 클래스를 활용할 수 없기 때문이다. 코드를 작성할 때는 크게 2가지 방법이 있다. 절차지향말 그대로 절차, 즉 순서대로 실행되는 구성을 말한다. 어떤 기능을 수행하기 위한 필요한 단계들을 나열하고, 그 과정을 하나씩 밟아가는 방식이다. 간단한 프로그램에서는 직관적이고 빠르게 결과를 낼 수 있지만, 규모가 커질수록 코드가 복잡해지고 유지보수가 어려워진다는 한계가 있다. 이전에 콘솔프로젝트를 해보면서 program.cs 에만 모든걸 구현하다보니 600줄이 넘어가는 현상이 벌어졌다.함수로 스플릿 해도 한계가 있고, 가독성이 떨어지게 된다. 예를들어 "차를 전진시킨다"를 구현하려면 지금까지는 함수..
C# - 구조체 (Struct, Structure)
·
C#
구조체 (Struct, Structure)구조체는 여러 데이터를 하나의 단위로 묶어서 표현할 수 있는 사용자 정의 자료형이다. 공식 문서에서는구조체는 값 형식으로, 여러 개의 관련된 변수를 하나의 단위로 캡슐화하는 자료형입니다. 라고 되어있다.열거형 보다는 알아들을만 하다.즉, 여러 개의 변수를 하나의 박스 안에 묶어 놓은 것이 구조체인데 이것을 잘 활용하면 나만의 커스텀 자료형을 정의해서 사용할 수 있다는 이야기다. 구조체를 선언하는 방식은 아래와 같다.struct Car{ public float maxSpeed; // 최고 속도 public string maker; // 제작사 private int carNumber; // 차량 번호 (비공개)} 이렇게 Car라는 새로운 자료형을 만들어서 직접 ..