카테고리 없음

C# 기초

O'bin 2022. 5. 25. 21:07

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(기본)

 

 

  • 클래스 형식 변환
  • 다형성
  • 문자열