C#-(1) 기본 개념
데이터 형식
기본 데이터 형식은 총 15가지 숫자 형식 : sbyte, byte, short, ushort, int, uint, long, ulong, char, float, double, decimal 문자열 형식 : string 논리 형식 : bool 오브젝트 형식 : object
문자열 데이터를 숫자 데이터로 변환할 때
- Parse() 메소드를 이용한 형 변환
- 정수 형식, 부동 소수점 형식을 문자열로 변경할 땐 Parse() 메소드를 이용
- ex) int intValue = int.Parse(“31”);
-
ex) float floatValue = float.Parse(“31.3482”);
- TryParse() 메소드를 이용한 더 안전한 형 변환
- Parse()는 형 변환에 실패하면 Console View에 에러를 출력 (게임이 진행중일 땐 알 수 없음)
- TryParse()는 형 변환에 성공했는지 여부를 논리 형으로 알려준다 (결과에 따라 설정 가능)
- ex) int intValue;
- ex) bool isConversion = int.TryParse(“33”, out intValue);
- 성공 : isConversion = true, intValue = 33;
-
실패 : isConversion = false, intValue = 0;
- Parse(), TryParse() 메소드로 변환할 수 있는 숫자 데이터 타입 (정수, 실수)
- sbyte, byte, short, ushort, int, uint, long, ulong,
- float, double, deciamal
숫자 데이터를 문자열 데이터로 변환할 때
- ToString() 메소드를 이용한 형 변환
- int intValue = 31;
- string stringValue = “숫자가 아닙니다”;
- stringValue = intValue.ToString();
-
// 현재 stringValue = “31”;
- float floatValue = 31.3482f;
- stringValue = floatValue.ToString();
- // 현재 stringValue = “31.3482”;
const 상수
- 상수는 데이터를 초기화할 때 1회 이외에 절대 변경할 수 없는 변수
- 변경하지 말아야할 변수를 건드려 프로그램에서 오류가 발생하는 것을 방지
- const 자료형 상수명 = 값;
- const int MaxHP = 100; // 변수의 선언과 비슷하지만 데이터 형식 앞에 const 키워드 추가
- // 상수가 가지는 데이터를 반드시 대입
- MaxHP = 10; // 초기화 이후에 상수의 값을 변경하려 하면 에러 발생
- 오직 초기화 구문에서만 가능 (쓰기)
- static 속성 불가능 (기본적으로 정적 멤버 취급) (읽기)
readonly 읽기 전용 변수
- 값을 읽을 수는 있지만 수정할 수는 없는 변수 -> 읽기 전용 변수 readonly
- 초기화 구문, 생성자에서 가능 (쓰기)
- 할당 순서는 초기화 구문 -> 생성자 (쓰기)
- non-static : 인스턴스 필드로써 사용 (읽기)
- static : 정적 필드로써 사용 (읽기)
열거형은?
상수를 하나의 그룹으로 묶어 관리
- 게임에서 캐릭터를 만들었을 때 캐릭터의 동작을 상수화해서 저장할 때
- const int PlayerIdle = 1;
- const int PlayerMove = 2;
- const int PlayerAttack = 3;
- const int PlayerDefense = 4;
- const int PlayerDie = 5;
- enum PlayerState { Idle, Move, Attack, Defense, Die }
열거 형식의 정의
- enum 열거형식명 : 기반자료형 { 상수1, 상수2, 상수3, … }
- enum 열거형식명 { 상수1 = 값1, 상수2 = 값2, 상수3 = 값3, … }
- 열거 요소의 값을 프로그래머가 원하는 값으로 입력하는 것도 가능
- 입력이 없으면 앞의 숫자 +1로 자동 저장
- ex) enum PlayerState { Idle = 0, Move, Attack = 10, Defense, }
- Idle = 0 , Move =1, Attack = 10, Defendse = 11
Nullable이란?
- 0이 아닌 비어있는 변수, null 상태를 가질 수 있는 변수
- int, float 을 초기화할 때 null 사용 불가능. 잘 사용하지 않는 -1, 0 등의 숫자로 초기화함
Nullable 변수의 선언 데이터 형식? 변수이름; int? intValue = null; float? floatValue = null; string? stringValue = null;
- Tip) Nullable 형식은 HasValue와 Value 두 가지 속성을 가지낟.
- HasValue : 변수가 값을 가지고 있는지 가지고 있지 않은지 (true/false)
- Value : 변수에 담겨 있는 값
- int? intValue = null;
- Debug.Log(intValue.HasValue);
- intValue = 31;
- Debug.Log(intValue.HasValue);
- Debug.Log(intValue.Value);
강한형식검사 vs 약한형식검사
변수는 강한 형식 검사와 약한 형식 검사 두가지로 나눌 수 있다. 강한 형식 검사
- 변수나 상수와 같은 데이터의 형식을 깐깐하게 검사하는 방식
- 장점 : 의도치 않은 형식의 데이터를 읽거나, 할당하는 것과 같은 프로그래머의 실수를 줄여준다.
- 단점 : 코드를 작성할 때 형식(int, long, etc..)을 정확하게 표기해야 한다
약한 형식 검사
- 컴파일러가 자동으로 해당 변수의 형식으로 지정하는 방식
- var 키워드가 약한 형식 검사를 지원한다
- 컴파일러가 변수의 형식을 판단할 수 있도록 선언과 동시에 초기화
- var valueInt = 31;
- var valueDouble = 3.141592;
- var valueString = “와 편리하네요”;
- Tip) 클래스의 멤버 변수는 초기화 하지 않는 경우도 있기 때문에 var 키워드는 지역 변수로만 사용할 수 있다.
문자열 다루기
문자열 서식 string.Format()
- 문자열을 원하는 형태로 가공하는 문자열 서식 메소드
- 첫 번째 매개변수에 서식 항목의 개수와 각 문자열의 서식을 지정
- 두 번째 매개변수부터 문자열 정보 입력
- 즉, 첫 번째 매개변수인 서식 항목의 개수에 따라 병합 가능한 문자열 개수가 바뀐다.
- ex) string.Format(“{0}{1}{2}, …“과 같을 경우 4개의 문자열을 매개변수에 등록해야하기 때문에 서식 항목을 포함해 5개의 매개변수 사용
- ex) string str = string.Format(“{0}{1}”, “Hello”,”World”);
- {0}{1}로 두 개의 서식 항목을 사용하기 때문에 “Hello”와 “World” 두개의 문자열을 매개변수에 작성
- ex) string str = string.Format(“{0}{1}{2}”, 1, “:”, 30);
- {0}{1}{2}로 세 개의 서식 항목을 사용하기 때문에 1과 “:”, 30 세 개의 문자열(정수/실수 가능)을 매개변수에 작성
문자열 보간
- C# 6.0 이상에서 사용 가능한 기능
- string.Format()과 비슷하지만 서식 항목에 첨자 대신 식이 들어간다
- 식에 변수나 객체의 이름을 그대로 사용 가능
- 상수 입력 가능
- 조건에 따라 다른 값을 출력하는 코드 사용 가능
- $”텍스트 {<보간식>, 길이:서식 } 텍스트";보간식>
- 보간식: 변수, 객체를 반환하는 식 등
- 길이 : 서식 항목의 “맞춤”과 동일
- 서식 : 서식 항목의 “서식 문자열”과 동일
그림1.
문자열 탐색
- 문자열(string) 형식에서 제공하는 탐색 메소드

문자열 변형
- 문자열(string) 형식에서 제공하는 문자열 변형 메소드

문자열 분할
- 문자열(string) 형식에서 제공하는 문자열 분할 메소드

댓글남기기