내일배움캠프 7일차 TIL : C# 종합 문법 2

김정환·2024년 9월 20일
0

키워드

  • class 용어 정리
  • 제너릭
  • 오버로드 vs 오버라이딩
  • 값형 vs 참조형
    • 박싱 vs 언박싱
  • Delegate, Func, Action

어제와는 다르게 오늘은 확실히 배운 것들 많은 날이었다.


Class 용어 정리

https://velog.io/@jhk0701/C-%EC%A2%85%ED%95%A9-%EB%AC%B8%EB%B2%95-3
클래스 구성요소 학습에서 용어를 확실히 정리했다.
지금까지 뜻을 혼용해서 쓴 부분이 있었는데 그 부분을 명확하게 정리할 수 있었다.

  1. 필드
    • 클래스에서 사용하는 변수
    • private로 선언
    • 접근은 프로퍼티를 만들어서 사용
  2. 프로퍼티
    • 클래스 내 필드에 접근하기 위해 사용.
    • public으로 선언
    • 외부에서 필드에 접근할 때 중간다리 역할 + 필드에 접근하는 작업을 통제하는 역할 수행
  3. 메서드
    • 클래스에서 사용하는 함수
    • 보통 public

오버로드 vs 오버라이딩

https://velog.io/@jhk0701/C-%EC%A2%85%ED%95%A9-%EB%AC%B8%EB%B2%95-3
기술 면접에서 자주 나온다고 들어서 예전에 봤던 내용이다.
되새기는 차원에서 다시 정리해본다.

오버라이딩 overriding

  • 상속 관계에서 발생
  • 부모 클래스에서 이미 정의된 메서드를 자식 클래스에서 재정의하는 것
  • 매개변수, 반환값이 동일

오버로드 overload

  • 같은 이름의 메서드가 매개변수의 타입, 순서, 종류에 따라 여러 개의 메서드로 정의하는 것
    같은 기능을 하는 메서드를 다른 방식으로 호출하는 것
    (다양한 매개변수의 조합으로 호출하는 것)
  • 매개변수 구성이 다름, 반환값 동일

제너릭 사용법

https://velog.io/@jhk0701/C-%EC%A2%85%ED%95%A9-%EB%AC%B8%EB%B2%95-3
자주 쓰는 편이 아니라 쓸 일이 있을 때마다 검색해서 썼는데
이 역시 이번에 정확히 정리했다.

class MyClass<T> // T 자료형을 쓰는 클래스
{

	public T Method(){
    	// T 자료형의 값을 반환
    }
}

// 제너릭 2개 이상 사용
class Pair<T1, T2>
{
	~~~
}

값형 vs 참조형

https://velog.io/@jhk0701/C-%EC%A2%85%ED%95%A9-%EB%AC%B8%EB%B2%95-4
이것도 기술 면접에서 자주 나온다해서 예전에 어렴풋이 읽었던 걸 다시 정리해보았다.

값형 Value Type

  • 일반 변수, 구조체
  • 값을 직접 저장, 다른 곳에 할당 시 값을 복사

참조형 Reference Type

  • class, 배열, 인터페이스
  • 변수가 메모리 주소를 저장(= 참조), 다른 곳에 할당 시 참조 복사 = 메모리 주소를 넘겨줌.
  • 참조형으로 받은 객체를 수정하면 원본도 수정된 이유.
  • 가비지 컬렉터의 대상

박싱 vs 언박싱

박싱 Boxing

  • 값형 -> 참조형
  • 값을 힙 메모리 영역에 할당된 객체에 감싸는 것(포장 = boxing).

언박싱 Unboxing

  • 참조형 -> 값형
  • 박싱된 객체에서 값을 추출해서(포장을 푸는 것 = unboxing) 값형 변수에 할당

박싱된 객체와 원래의 값형은 서로 독립적이다.
값을 수정해도 상호간 영향을 주지 않는다.


Delegate, Func, Action

https://velog.io/@jhk0701/C-%EC%A2%85%ED%95%A9-%EB%AC%B8%EB%B2%95-4-2
지나가면서 본 적 있지만 이해가 어려웠던 것을 이번에 정리할 수 있었다.

Delegate

  • 메서드를 저장하는 타입
  • 함수 포인터와 유사

Func, Action

  • 미리 제너릭으로 정의가 되어있는 델리게이트

Func

  • 반환값이 있는 델리게이트
Func<매개변수, 반환값>

Action

  • 반환값이 없는 델리게이트
Action<매개변수, 매개변수>

람다 Lambda

은연 중에 자주 썼지만 확실히 정리해두자.

  • 익명 메서드
(parameter_list) => expression

(parameter_list) => {
	expression
   	return도 가능
}

#내일배움캠프 #스파르타내일배움캠프 #스파르타내일배움캠프TIL

profile
만성피로 개발자

0개의 댓글