C#-(1) 기본 개념

3 분 소요

데이터 형식

기본 데이터 형식은 총 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) 형식에서 제공하는 탐색 메소드

그림2

문자열 변형

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

그림3

문자열 분할

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

그림4

카테고리:

업데이트:

댓글남기기