데이터
상수, 열거형, 기본데이터형식, 복합데이터형식(구조체, 클래스, 배열)
값형식, 참조형식으로 구분
변수- 변할수 있는 값
변수의 선언 - 컴파일러에게 이 변수에 필요한 공간을 예약하라고 알리는 것
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 을 이용해 네임스페이스를 언급하지않고 사용할 수 있게 된것임. 근본적으로 같음
'C#언어 > 뇌자극C#5.0' 카테고리의 다른 글
C# : Chapter -6 클래스 (0) | 2017.12.08 |
---|---|
C# : Chapter -5 메소드 (0) | 2017.12.08 |
C# : Chapter -4 코드 흐름제어 ( 조건문, 반복문,점프문 ) (0) | 2017.12.07 |
C# : Chapter -3 연산자 (0) | 2017.12.07 |
C# : Chapter -1 C#의 골격 (0) | 2017.12.06 |