새로 만든 프로젝트에 모든 내용을 지운다.
그다음에 "Hi"; 와 2024; 를 입력해 보았다.
우리가 입력한 숫자와 문자를 데이터 라고 표현하겠다.
에러가 발생한 것을 확인할 수 있다.
빨간줄이 나온 이유는 형식에 맞지않아서 발생한 문제라고 볼 수 있다.
우리는 앞으로 이 것을 자주 보게 될 것이다.
작성한 “Hi” 라는 문자는 코딩영역에서 혼자 살아남을 수 없는 친구이다.
코딩영역에 데이터를 추가를 하면 지금처럼 에러가 발생한다.
하지만 이전 코딩을 보면 Console.Write(); 안에서는 에러가 발생하지 않았다.
이 부분이 바로 데이터가 안전하게 있을 수 있는 공간이다.
하지만 Console.Write(); 의 본래 목적은 프로그램에 표시를 해주는 기능이다.
그러므로 데이터가 필요할때마다 사용할 수는 없다.
이럴때 필요한게 변수이다.
데이터 형식 변수이름
문자 -> string 으로 표시 닉네임이라 생각하면 편하다
숫자 -> int 로 표시
ⓐ 변수 활용
변수를 잘 활용한다면 다음과 같이 나타낼 수 있다.
ⓑ 변수 수정
변수는 말 그대로 변하는 수이다.
그러므로 한번 만들고 끝이 아니라 이후 다른 값을 지정할 수 있다.
ⓒ 자료형 - 정리표
크기가 클 수록 그 만큼 많은 메모리를 차지하기 때문에 효율적으로 사용해야한다.
ⓓ 자료형 - 숫자
지금까지 우리는 숫자가 필요할 때 int 를 사용해왔다.
하지만 모든 숫자가 int에 저장될 수는 없다.
정수일 경우에는 int를 사용하지만, 소수점이 필요한 실수같은 경우에는 또 다른 타입들을 사용해야 할 필요가 있다.
아무런 표시가 없다면 double로 인식한다.
ⓒ 자료형 - 문자열과 문자
string talk = "Hi";
여기서 Hi 는 엄밀히 말하면 문자가 아닌 문자열
"Hi" 분석해 보면 "H" , "i" 2가지 문자가 합쳐진 데이터이자 문자열(String)
H와 i는 문자
그리고 문자를 표현하는 자료형이 char 이다.
ⓓ 자료형 - bool
bool (boolean) 은 단 두가지의 값을 가진다.
보통 논리 연산의 결과로 얻게 된다.
- true
- false
일반적으로 익숙한 다른 자료형(숫자, 문자) 와는 다르게 생소한 형태이다.
주로 어떤 계산이 맞았는지 아닌지 확인할 때 사용한다.
예제에서 10 > 5 를 계산하였다.
계산이 맞으면 isLarge 의 값은 true, 틀리면 false 가 된다.
이런식으로 특정한 상황이 되었을때 어떻게 진행될지 판단근거가 되는 것이 bool 이다.
[ 자료형 / 리터럴 ]
자료형은 변수를 선언하고 값을 저장
리터럴은 단위라고 생각하면 편함
[ 자료형을 세분화 해서 사용하는 이유 ]
타입 안정성
정확한 데이터 표현
메모리의 효율적인 사용
[ 변수 ]
데이터를 저장하고 사용하기 위한 할당받은 공간
ex) 게임을 제작할때 플레이어의 재화나 공격력, HP 같은 정보를 저장하기 위해 사용
[ 변수명 ]
키워드(Keywords) = 이미 예약된 단어
C#에서는 키워드로 변수, 메소드, 클래스 등의 이름으로 사용할 수 없음
코드 컨벤션 (Code convention) = 개발자들 사이에서 약속된 코드 작성 규칙
- PascalCase
클래스, 메서드, 프로퍼티 이름 등에 사용됩니다.
단어의 첫 글자는 대문자로 시작하며, 이후 단어의 첫 글자도 대문자로 표기합니다.
ex) ClassName, MethodName - camelCase
변수, 매개변수, 로컬 변수 이름 등에 사용됩니다.
단어의 첫 글자는 소문자로 시작하며, 이후 단어의 첫 글자는 대문자로 표기합니다.
ex) variableName, parameterName - 대문자 약어
예외적으로 전체 글자가 모두 대문자인 식별자도 있습니다.
ex) ID, HTTP, FTP
.NET 설명서 C# 코딩 규칙 - C# | Microsoft Learn
[ var 키워드 ]
- C# 3.0부터는 var 키워드를 사용하여 변수를 선언할 수 있습니다.
- var 키워드를 사용하여 변수를 선언하면 변수의 자료형이 컴파일러에 의해 자동으로 결정됩니다.
- 즉, 초기화하는 값의 자료형에 따라 변수의 자료형이 결정됩니다.
- var 키워드를 사용하여 변수를 선언할 때에는 초기화하는 값의 자료형에 따라 변수의 자료형이 결정되므로, 변수를 선언하는 시점에서 변수의 자료형을 정확히 알 수 없는 경우에 유용하게 사용할 수 있습니다.
[ 형변환 ]
C#에서는 자료형이 다른 변수 간에 값을 할당하거나 연산을 수행할 수 있음
이때, 자료형이 다른 변수 간에 값을 할당하거나 연산을 수행하려면
명시적 형변환(explicit casting) 또는 암시적 형변환(implicit casting)을 해주어야 한다.
명시적 형변환
다음과 같이 (자료형) 형식으로 수행할 수 있습니다.
암시적 형변환
1. 작은 데이터 타입에서 더 큰 데이터 타입으로 대입하는 경우
- byte, short, char 등 작은 데이터 타입 => int, long, float 등 더 큰 데이터 타입으로 대입
암시적 형변환이 발생합니다.
2. 리터럴 값이 대입되는 경우
- C# 컴파일러는 리터럴 값의 데이터 타입을 판별하여 변수에 암시적으로 형변환합니다.
3. 정수형과 부동소수점형 간의 연산을 수행하는 경우
- 정수형과 부동소수점형의 연산 결과는 부동소수점형으로 변환됩니다.
- 암시적 형변환은 프로그래머가 직접 형변환 코드를 작성하지 않아도 되므로 코드를 간결하게 작성할 수 있습니다.
- 하지만, 암시적 형변환이 발생하는 경우 데이터 타입을 신중하게 고려하여 코드를 작성해야 합니다.
캐스팅 = 형변환
여러가지의 자료형이 있는 만큼 다양한 상황에서의 형변환이 있지만
크게 3가지로 생각할 수 있다.
- 숫자를 다른 형태의 숫자로 변환
- 다른 자료형을 문자로 변환
- 문자를 다른 자료형으로 변환
ⓐ 숫자 ㅡ> 숫자
숫자를 다를 숫자의 형태로 바꾸는 방법이다.
실제로 숫자의 자료형은 더 많지만 가장 기본적인 int 랑 float 만 확인하겠다.
ⓑ 다른자료형 ㅡ> 문자
숫자나 bool 을 문자로 바꾸는 방법이다.
간단하게 뒤에 .ToString()을 붙이면 변환할 수 있다.
ⓒ 문자 ㅡ> 다른자료형
대표적으로 3가지 방법이 있다.
- Convert 클래스
- Parse() 함수
- TryParse() 함수
ⓒ-① Convert 사용
ⓒ-② Parse() 함수 사용
ⓒ-③ TryParse() 함수 사용
위와 같은 의도하지 않은 상황에 대처하기 위해 TryParse 가 있다.
out 개념이 들어가는데 어려운 개념이므로
어떻게하면 사용할수 있는지 모양만 확인하자.
기존 방법과 다른 점은 반환값으로 캐스팅한 값을 받지 않는다.
반환값은 bool 만 받으며 캐스팅이 성공했는지 알 수 있다.
'C# > Knowledge' 카테고리의 다른 글
조건문 (0) | 2024.04.23 |
---|---|
연산자와 문자열 처리 (0) | 2024.04.22 |
프로그래밍 기본 요소 (0) | 2024.04.22 |
C# 소개 및 개발환경 설정 (0) | 2024.04.22 |
접근 제한자 (0) | 2024.03.25 |