1. 데이터
- 정수 자료형
byte(1byte 0~255) short(2byte -3만~3만) int(4byte -21억~21억) long(8byte) |
sbyte(1byte -128~127) ushort(2byte 0~6만) uint(4byte 0~43억) ulong(8byte) |
- 효율적인 메모리 이용 위해 크기 맞는 자료형 사용해야 함
- byte형 underflow 주의
byte a=0;
a--; //a=255
- 음수는 이진법에서 2의 보수 방식으로 표현, 최상위비트 1이면 음수
- - bool 타입(참/거짓)은 1byte
- 소수 자료형
- float 4byte
- double 8byte -> 더 정밀, 큰 범위
문자 자료형 : char 2byte
문자열 자료형 : string
형변환 : 명시적 형변환(캐스팅)
- 소수 형변환 시 인접한 수로 변환되기 때문에 예측과 다른 결과 나올 수 있음
- 논리 연산자
- 비트 연산
- shift : << >> 방향으로 한 칸 이동
- 비트연산 시에는 unsigned 사용하는 것이 편함
- id 생성 등에서 활용
- xor은 암호화에서 사용됨
- var 자료형
- 컴파일러가 알아서 자료형 찾아줌 <- 코드 작성 시에는 편하지만 코드 가독성 나쁨
2. 코드 흐름 제어
- switch문
- switch(정수랑 문자열 넣을 수 있음)
- 가독성 좋아 간단 분기문의 경우 사용
- 삼항 연산자
- bool tf = (조건 ? 맞을때 : 틀릴때);
- 상수
- const : 바꿀 수 없는 수 선언
- 열거형
enum
- while문
- do-while문
- method
- static 반환형식 이름(매개변수목록) { } : 메소드 선언
- 덧셈 method
진짜 a값 그 자체를 넘기는 참조 ref
ref보다 이렇게 return하는 것이 더 바람직
out으로 반환
- 오버로딩
- 함수 반환 형식은 오버로딩이랑 연관 x
- 함수 이름 재사용 하며 입력 형식,개수 다르게 할 때 유용
3. 객체지향
객체지향 프로그래밍 = OOP(Object Oriented Programming)
- 객체 정의
- 객체 생성
객체는 ref, struct는 복사본으로 작업됨
clone 함수
- 스택과 힙
메인함수 코드는 스택에서 실행됨
새로운 객체 생성하면 heap에 위치
c++은 사용자가 직접 heap메모리 해제해야하는데
c#은 프로그램이 알아서 해줘서 편리
- 생성자
- 클래스랑 이름이 같아야 함, 반환형 없음
디폴트 생성자 먼저 실행 후 인수 값 들어가는 생성자 실행
- static
- static=오직 1개만 존재 (ex. static public int a;)
- static 내부에서는 공용 변수 조작 불가, static 변수만 조작 가능
- 상속성
- 부모객체 내용 상속
- base로 부모님의 생성자 접근 가능
- 은닉성
- 접근 한정자
- public / protected / private(기본)
- 클래스 형식 변환
- 다형성
- 문자열