Programming/C & C++

[C#] 입출력과 데이터

만나쓰 2020. 10. 7. 23:49

 

 

1. 입출력

 

 - 입력 : Console.ReadLine();           // "문자열"로 입력됨

 - 한 줄 출력 : Console.WriteLine("한 줄 출력");

 - 출력 : Console.Write("줄 바꿈 없이 출력");   

 

 

 

 

2. 데이터

 

- var : 선언시 초기화 필수

- '?' : nullable, null 값 저장 가능한 데이터  ( ex. int? a = 1; )

- const : 불변 변수 이용할 경우 사용, 변수명 대문자로 설정하기  (ex. const int MIN = 0;   // 최소값)

- object : 다양한 데이터로 저장 가능

- int, float, double, decimal, char, bool 등 존재

 

 

 

 

3. 문자열 <-> 수  :  ToString(), Parse, Convert

 

- 문자열로 바꾸기 : ToString()

- 문자열을 수로 바꾸기 : 데이터타입.Parse(문자열 변수명)  or  Convert.데이터타입(문자열 변수명)

 

string strA = "12345";
int parseA = int.Parse(strA);   // Convert.ToInt32(strA);

string strB = "3.141593";
float parseB = Convert.ToSingle(strB);  // float.Parse(strB);           

 

 

 

4. Value (값) & Reference (참조)

 

Value Reference
char, bool, enum, int 등 배열, string, class, interface, delegate 등
두 개의 변수가 서로 영향 주지 않음 두 개의 변수가 서로 영향을 줌
Stack에 값 저장 (존재) 값이 아닌 주소를 참조
(Stack에 주소값, 주소값 가진 Heap에 값 존재)

 

 

 

5. boxing & unboxing

 

heap 영역에 메모리 사용 -> boxing으로 불필요한 메모리 증가하게 되면 프로그램이 무거워지고 성능 저하되므로 잘 사용하기

 

int i= 123;
object o = i;	// boxing
int j = (int)o	// unboxing

 

 

 

6. 데이터 알아내기 : GetType()

 

- 변수.GetType();

int a = 10;
Console.WriteLine(a.GetType());      // a의 데이터 타입 출력 "System.Int32"