본문 바로가기

Program Language95

Part1. C# 첫발 내딛기(29. default를 이용한 변수 초기화) C# 7.1부터 변수를 초기화할 때 default를 사용할 수 있습니다. default를 사용하면 해당 자료형에 맞게 기본값이 할당됩니다. 따라서 변수 초기화 시 default를 사용하면 매우 편리합니다. 이번 포스팅에서는 이런 편리한 default를 이용하여 변수를 초기화하는 방법에 대해서 정리했습니다. 형식에 따른 기본값 C#은 자료형마다 각각의 기본값이 있습니다. 아래표에 자료형 별 기본값을 정리해 놨습니다. 형식 기본값 참조 형식 null 숫자 값 형식 0 bool false char '\0' enum 식(E)0 값이며 여기서 E는 열거형 식별자입니다. struct 모든 값 형식 필드를 기본값으로 설정하고 모든 참조 형식 필드를 null로 설정하여 생성한 값 nullable 형식 HasValue .. 2023. 1. 26.
c++ 기초(클래스 정의) C++ 이 C구분되는 중요한 특징이 바로 객체지향 언어라는 점입니다. 객체지향 프로그래밍(Object-Oriented Programming)은 C와 같은 절차형 프로그래밍에 비해 코드 작성이 좀 더 독특합니다. 코드 표현에 있어서 세상 모든 것을 객체의 관점에서 바라보는 것입니다. 객체라는 개념은 그리 어려운 것이 아닙니다. 우리 주변에서 흔히 볼 수 있는 TV, 컴퓨터, 사람, 자동차, 의자, 카메라 등 그 모든 것이 객체입니다. 이런 객체를 표현하기 위해 C++에서는 클래스라는 개념을 도입했습니다. 이번 장에서는 객체지향의 가장 기본이라 할 수 있는 클래스(Class)에 대해서 정리해 보겠습니다. 클래스(class) 정의 클래스(class)란 객체의 특성을 정의한 것입니다. 이런 특성을 정의하기 위해.. 2023. 1. 25.
Part1. C# 첫발 내딛기(28. Null 조건 연산자 '?') C#에서 참조형 변수를 다룰 때에는 null 검사를 해야 합니다. 이는 객체 속성에 접근할 때마다 체크를 해줘야 합니다. 하지만 C#에서는 좀 더 편리한 방법을 제공합니다. 그것은 바로 Null 조건 연산자인 '?'을 사용하는 것입니다. 이번 포스팅에서는 이런 Null 조건 연산자에 대해 학습한 내용을 정리했습니다. null 검사 null이란 어떤 객체도 참조하지 않는 참조형 변수입니다. 참조형 변수에 어떠한 객체도 할당되지 않았을 때 디폴트로 할당되어 있는 값이 null입니다. 다만 null은 값형에는 할당될 수 없습니다. null인 참조형 변수에 접근하려고 할 경우 예외가 발생하기 때문에 객체의 생성여부를 파악하기 위해 널 검사를 많이 사용합니다. 다음은 일반적으로 사용하는 null 검사 방법입니다... 2023. 1. 24.
Part1. C# 첫발 내딛기(27. 값 형식과 참조 형식) C#자료형은 값 형식과 참조 형식으로 나뉩니다. 이 둘의 차이는 데이터를 스택에 저장하느냐 아니면 힙에 저장하느냐에 따라 나뉩니다. 이번 포스팅에서는 각각의 자료형에 대한 특징과 사용법에 대해서 정리했습니다. 값 형식 값 형식은 변수가 실제 데이터 값을 저장하는 형식입니다. 값 형식을 갖는 자료형에는 c#의 기본 자료형과 열거형, 구조체가 있습니다. 이들 자료형들에 대한 데이터는 기본적으로 스택에 저장합니다. 다음은 값 형식에 대한 자료형들을 보여줍니다. C# 값 형식 기본 C#형식(int, double, char, bool, float 등), struct, enum 값 형식을 함수의 인자로 전달할 때 내부에서 변수값을 변경해도 원본의 변수값은 변하지 않습니다. 이러한 특징은 다음 예제롤 통해 확인할 수.. 2023. 1. 22.
Part1. C# 첫발 내딛기(26. const 와 readonly) 이번 포스팅에서는 상수를 표현하는 const와 이와 유사한 readonly에 대해서 정리했습니다. const const로 선언된 변수는 추후에라도 값을 변경할 수 없습니다. 만약 바꾸려고 한다면 컴파일 에러가 발생합니다. 나중에 값을 변경하지 못하기 때문에 선언과 동시에 원하는 값으로 할당을 해야 합니다. 따라서 컴파일 타임에 값이 결정됩니다. const double kilometerTomile = 0.621371; 이렇게 선언된 kilometerTomile 변수는 나중에 값을 변경할 수 없습니다. 외부에서의 접근은 "클래스명.변수명"으로 접근해야 합니다. readonly C#에는 const와 유사한 readonly라는 키워드가 있습니다. const와 다른 점은 객체 생성 시 값이 초기화가 된다는 점입니.. 2023. 1. 20.
Part1. C# 첫발 내딛기(25. String과 StringBuilder의 차이) C#에서 String을 이용하여 문자열 합성을 하다 보면 간혹 느려질 때가 있습니다. 이유는 '+' 연산 때문입니다. 이 연산자를 사용하면 사용할수록 문자열을 더할 때마다 새로운 메모리 생성과 복사가 일어나기 때문입니다. 이번 장에서는 string의 이러한 단점을 해결해 주는 StringBuilder에 대해서 정리해 보았습니다. String의 문자열 합성 속도 String 변수에 100만 개의 문자열을 더하는 연산(+)을 한다고 가정해 봅시다. 그러면 String은 100만 개의 문자열을 저장하는 메모리를 할당하고 더할 때마다 생성되는 99만 9999개의 문자열을 저장하는 메모리리를 생성합니다. 그리고 매번 복사가 일어납니다. c#에서는 가비지 콜렉터라는 기능이 있어 이런 메모리는 자동으로 처리해 주지만.. 2023. 1. 20.