데이터


상수, 열거형, 기본데이터형식, 복합데이터형식(구조체, 클래스, 배열)


값형식, 참조형식으로 구분


변수- 변할수 있는 값


변수의 선언 - 컴파일러에게 이 변수에 필요한 공간을 예약하라고 알리는 것 


int x;

데이터 형식 식별자 (함수의 이름);


값 형식 - 변수가 값을 담는 데이터 형식 , 스택에 저장  ex) int, double ....

참조 형식 - 값이 있는 곳의 위치(참조) 를 담는 형식, 힙에 데이터저장, 스택에 저장된 데이터의 주소값 저장 ex) 문자열형식 , object형식


스택에 저장된 값은 알아서 프로그램 종료와 함께 순서대로 사라짐.

힙에 저장된 값은 스스로 사라지지 않기 때문에 더이상 사용되지 않을때 가비지 컬랙터에의해 수거되어짐. - 프로그램 종료시에도 남아있음.


오버플로우 - 데이터형식의 크기를 넘어서는 값이 담겨졌을때 넘치는것.


숫자 데이터 형식 - 정수형식(byte , sbyte , short , ushort , int , uint , long , ulong , char) , 부동 소수점 형식(float , double) , Demical형식

문자 형식, 문자열 형식 -char , string

논리 형식 - bool

object 형식 - 상속 효과로 모든 데이터를 참조형식으로 다 담을 수 있다 (박싱 , 언박싱)

박싱

object a = 20;

언박싱

int b = (int)a;

object c = (object)a;


(  ) - 데이터 형식 변환 , 왼쪽의 자료형을 그대로 써주면 된다


문자열을 숫자로 변환 - Parse(); 메소드 이용


int a = int.Parse("12345");

float b = float.Parse("123.45");

string c = "12345";

int d = int.Parse(c);

int e = Convert.ToInt32(c);


숫자를 문자열로 변환 - ToString(); 메소드 이용


int a = 12345;

string b = a.ToString();

double c  = 123.45;

string d = c.ToString();


상수와 열거 형식 - 값을 바꾸지 말아야 할 변수의 값이 변경되는것을 막아줄 수 있음


상수 선언

const 자료형 상수명 = 값;

열거 선언 - 같은 범주에 속하는 여러개의 상수를 선언할때 유용 , 초기화 안할시 0부터 1씩증가하며 할당됨.

enum 열거형식명 : 기반자료형 {상수1,2,3,4....} 


enum DialogResult ={yes,no,cancle}

int a = (int)DialogResult.yes - DialogResult.yes 는 DialogResult 형식이기때문에 int 자료형으로 형변환을 해줘야한다.

DialogResult result = DialogResult.yes; - DialogResult 를 자료형식으로도 활용 가능하다


Nullable 형식 - 비어있는 상태가 될 수 있는 형식


int? a; = null;

double? a = null;


Nullable 형식은 HasValue 속성과 Value 속성을 가지고 있다


HasValue - 값을 가지고 있는지 아닌지 확인

int a = 20;

a.HasValue - True ( 값이 있으면 True , 없으면 False 반환)

a.Value - 20 ( 값 반환)


var 형식 - 컴파일러가 알아서 자료형을 정해줌 ( 얕은검사 - 컴파일러가 오류를 잡아내기 어려워지는대신 코딩이 편해짐 , 항상 선언과 동시에 초기화)

var 형식은 지역변수로만 사용 가능 ( 클래스는 생성자를이용해 생성하기때문에 선언과 동시에 초기화하는것이 힘들기 때문)


GetType() ; 메소드  : a.GetType  - 자료형 반환

Console.WriteLine("abc:{0},{0},{1}",a,b}; 중괄호 안의 숫자로 몇번째 변수를 불러들여올것인지 정할 수 있음. a,b는 문자열,자료형,변수 전부 될 수 있음

string 은 System.String 에서 using System 을 이용해 네임스페이스를 언급하지않고 사용할 수 있게 된것임. 근본적으로 같음


+ Recent posts