본문 바로가기
컴퓨터공학/프로그래밍

C# | 기초

by KISCH 2020. 2. 7.
반응형


C#





특징


❛ 닷넷 플랫폼에 걸맞은 MS에서 만든 객체 지향 언어.

 각종 언어들의 장점들을 모아놓음. 자바와 비슷

 하나의 소스파일(*.cs) 안에 정의

 포인터 불필요, 가비지 컬렉션. 열거형, 구조체 생성 가능. 인터페이스 기반

 장점 : 강력한 UI, 방대한 라이브러리

 단점 : 자바 -> JRE를 통해 여러 운영체제에 맞게 실행. C# -> 닷넷 (윈도우만 설치, 프로그램의 무거움)

 커맨드 : 스크립트에 쓰여진 명령, 세미콜론으로 마무리



전처리기


#define DEBUG

// #undef DEBUG // release version 릴리즈  주석 풀면 로그기능 

#if DEBUG    

Console.WriteLine("Debug version");

#endif

if 뒤의 DEBUG 정의 되어있으므로 if 실행.

-------------------------------------------

#if Unity_Editor



클래스


 클래스 다이어그램

 객체 초기화 연산자

 참조 (reference) : 객체가 가르키는 클래스 유형을 가지는 변수

 인스턴스 : 클래스에서 생성한 객체

 캡슐화 : 클래스의 데이타를 숨김 -> private

 생성자 : 객체 초기화시 비공개 필드가 있을 경우

 get, set 접근자 : 다른 클래스에서 그 속성을 읽거나 쓸 때 실행되는 특수한 메소드

 상속 :

 오버라이딩 : 상속받은 메소드를 바꾸는 것

 인터페이스 : 클래스에 어떤 메소드와 속성을 반드시 구현해야 한다고 알려주는 역활. 아니면 에러

 추상클래스 : 클래스 선언부에 abstract 키워드를 추가. 인스턴스 생성 불가

 다형성 : 한 객체가 여러 모양을 가질 수 있다

 MonoBehaviour


 Stream 클래스 : 데이터를 읽고 씀

1. Stream.Read()

2. Stream.Write()


 StreamWriter : FileStream객체(바이트 형태로 파일을 작성)를 생성하고 관리


 System.Drawing

1. Rectacngle : 직사각형 클래스

2. Point : 점 클래스



함수 (메서드)


 Console.Read/ReadLine : 입력

 Console.Write/WriteLine : 출력


 OnMouseDown

게임 오브젝트의 충돌체, 게임의 GUI요소를 마우스로 클릭했을 때 호출, 인스펙터의 box collider


 OnMouseUp : 마우스 버튼을 눌렀다 떼었을 때

 OnMouseEnter : 마우스 커서가 충돌체나 GUI요소 안으로 들어갔을 때

 OnMouseExit : 마우스 커서가 충돌체나 GUI요소 밖으로 빠져나갔을 때

 Randomizer.Next(7) : 7이하의 난수 생성

 Start() : 내장함수. 초기화시 호출

 String.isNullOrEmpty() : 빈 문자열인지 체크

 System.Threading.Thread.Sleep(3) : 0.003초 쉬어

 ToString() 메소드 : 문자열로 바꿔

 Update() : 내장함수, 매 프레임이 랜더링 될 때 마다 호출. FPS 30이면 초당 30번 호출



가비지 컬렉션


 예외 처리

- Exception : 프로그램이 예외 발생 -> Exception 객체 생성

1. IndexOutOfRangeException : 범위를 벗어난 배열의 인덱스에 접근

2. FormatException :

3. OverFlowException :

4. DivideByZeroException :

- try catch finally 문

- throw : 예외발생


 이벤트 핸들러

- 객체가 이벤트 발생을 감지하면 실행할 준비된 코드

- 이벤트

- 이벤트 핸들러

- 이벤트 구독

- 대리자(delegate) :

- 콜백



LINQ


C#언어에 통합된 데이터 질의기능



유니티


게임 오브젝트에 스크립트 컴포넌트를 추가하여 사용

스크립트 객체는 MonoBehaviour클래서를 상속

클래스명은 같은 프로젝트에서 중복되면 안된다.



직렬화 : 프로세스에 있는 개체 정보를 다른 물리적인 매체에 선형적인 방법으로 저장하는 것

역직렬화 : 다른 물리적인 매체에 선형적으로 저장되어있는 것을 프로세스 개체로 사용





반응형

'컴퓨터공학 > 프로그래밍' 카테고리의 다른 글

C# | ref. 언어참조 : 키워드와 데이터 형식  (0) 2020.02.07
C# | ref. 프로그래밍 가이드  (0) 2020.02.07
C# | 레퍼런스 둘러보기  (0) 2020.02.07
C# | 자료형  (0) 2020.02.07
ObjectiveC | Property Synthesize 지시어  (0) 2020.02.07
ObjectiveC | 기초  (0) 2020.02.07
C++ | 기초  (0) 2020.02.07
C | 기초  (0) 2020.02.07

댓글