* C# 의 char 는 유니코드를 지원하는 2byte 크기의 변수이다.
* C#의 변수는 object의 상속을 받아 생성됨. object에는 모든 값을 담을 수 있다.
object는 참조형식이라 힙에 저장. 변수는 값형식이라 스택에 저장.
object에 값을 넣으면 박싱 되어 힙에 저장되고 변수에 형변환하여 넣으면 언박싱되어 스택에 값이 저장됨.
* C++의 auto는 C#의 var이다.
자료형을 알아서 파악하는 변수 var. 선언과 동시에 초기화가 필요하다.
* int/float 등의 수 자료형과 string 자료형간의 형변환 메소드 "Parse() / ToString()"
// string -> int/float string sValue = "12345"; int nValue = int.Parse(sValue); float fValue = float.Parse(sValue): // int/float -> string int nValue = 12345; float fValue = 123.45f; string sValue; sValue = nValue.ToString(); sValue = fValue.ToString();
* switch 문의 조건식에는 정수형과 더불어 문자열 형식도 사용 가능
* 배열 내 요소를 반복으로 사용하는 foreach
int[] arr = new int[]{0, 1, 2, 3, 4}; foreach(int a in arr) { Console.WriteLine(a); }
* 메소드 파라미터에 Call by reference 방식 사용하기
메소드 파라미터 앞에 ref키워드를 이용하여 call by reference로 인자를 넘길 수 있다.
* 메소드 파라미터에 결과를 받기위한 출력 전용 매개변수
메소드에 ref 키워드를 이용해도 파라미터에 값을 받을 수 있지만 출력을 위한 경우에는 out키워드를 사용
out에는 ref에는 없는 안전장치가 몇가지 더 있어서 보다 안전함
* 가변길이 매개변수를 만드는 키워드 params
메소드에 가변길이로 파라미터를 받는 경우 params 키워드 사용. 단 이경우 입력되는 자료형은 같아야 함
int Sum(params int[] args) { int sum = 0; foreach(int a in args) { sum += a; } return sum; }
* 메소드 파라미터를 넣을때 python 처럼 파라미터 명을 명명하여 입력 가능
======================== 추가할 내용 =======================
인터페이스, 프로퍼티(get, set), 무명형식, 컬렉션(ArrayList, Queue, Stack, Hashtable), 일반화, delegate, 람다식, LINQ, 리플렉션, 애트리뷰트, 다이나믹, 파일IO, Thread, WinForm