MY MEMO

[C#] C# 기본 문법 - 2 본문

STUDYING/C#

[C#] C# 기본 문법 - 2

l_j_yeon 2018. 3. 22. 17:58

<Class>


- 접근 한정자

public / protected / private

protected : 상속된 객체에서는 사용이 가능하나 외부에서는 접근이 불가능

internal : 한 프로젝트 안에서만 사용

protected internal : 어셈블리 내의 상속 클래스에서만 접근 가능


- 생성자 & 소멸자

ex)

MyClass{}

~MyClass{}


MyClass temp = new MyClass()

MyClass RefClass = temp; // class reference



- 인덱서


+) delegate & event

: Winform에서 가장 많이 쓰임


- delegate

복수 또는 단일 메서드를 대신하여 호출 -> 같은 형식

메서드만 호출 가능

외부에서 호출 가능 (private, protected 메서드 호출 불가)


- MultiCast Delegate

: 데이터를 여러 사용자에게 동시에 보내다


- Event (**)

특정한 상황이 발생했을 때 알리고자 하는 용도 (호출을 의미 + 데이터)

게시자 : 이벤트를 발생시키는 클래스 

구독자 : 이벤트를 받거나 처리하는 클래스 

델리게이트 기반 (Method 호출)


- 상속 (Object Oriented Class의 꽃!)

: 단일 상속만 가능함 (다중 상속은 불가능)

: 상속 문법



A : private protected public 변수 정의

B : A의 protected, public 사용 가능

Main : A의 public 사용 가능


생성자 호출 : 상위 -> 하위

소멸자 호출 : 하위 -> 상위


- base

: 변수명이 같을 때 제일 많이 쓰임


- sealed

: 상속불가 (멤버변수, 메서드)


- Override & Overloading

Override : 상위 클래스의 메서드를 무시하고 하위 클래스에서 메서드를 재정의 

상위 클래스 : virtual

하위 클래스 : override


Overload : 같은 이름의 메서드에 다양한 parameter 사용

public void Print(){}

public void Print(int number){}

-> 매개 변수가 다름


- Abstract

: 구현하려는 메서드의 형태만 존재하는 클래스

실제 구현은 상속을 받는 하위 클래스에서 구현

new를 통해서 생성이 불가능

abstract가 있는 상위 메서드만 하위에서 모두 구현 (모두가 abstract이 아니어도 괜찮음)


- 다형성! -> 클래스의 특징 중 하나! yeah~


- Boxing & UnBoxing

Boxing : 값 형식을 object 형 변환 (int, double, float ...)

ex)

int a = 7;

object obj = a;


UnBoxing

 : object 형을 다시 값 형식으로 변환

cast를 사용하여 형을 명시

ex)

int result = (int)obj;


+) UpCasting

DownCasting


- 인터페이스

구현 없이 형식만 포함 (추상 클래스)

다중 상속 가능

상속으로만 사용하고 생성은 불가

이벤트, 인덱서, 메서드 속성을 포함 할 수 없음

기본 권한은 public


'STUDYING > C#' 카테고리의 다른 글

[C#] .NET FRAMEWORK - Code First  (0) 2018.03.27
[C#] .NET FRAMEWORK - .net core  (0) 2018.03.23
[C#] C# 기본 문법 - 1  (0) 2018.03.22
[WPF] 기능 모음  (0) 2017.09.01
[WPF] Web Scraping  (0) 2017.09.01
Comments