[TIL-251229] 확장 메서드 / 이외 C#

데비·2025년 12월 29일

본과정

목록 보기
20/92

오늘 배운 내용

- 확장 메서드

- 불변객체

- StringBuilder

- Null

- Const

- Readonly

- Tuple

- Optional Parameter


확장 메서드

  • 기존에 있는 클래스를 건드리지 않고, 기능을 추가할 수 있도록 하는 기능이다.
  • 명확하게 필요로 하는 기능들을 미리 구현해놓고 확장 메서드를 불러와서 사용할 수 있다.(작업 속도 향상)
public static class Extensions // static class 필요
{
// 구현하고자 하는 기능들
}

불변 객체(Immutable)

  • string은 가장 대표적인 불변 객체중 하나로, 원본의 데이터가 변하지 않는다.(델리게이트도 불변 객체이다.)
  • 새로운 객체를 만들어서 새로운 공간에 재할당 하는 방식이기때문에 Heap메모리에 주소가 할당된다해도 아예 새로운 객체가 생기는것이라 객체 자체는 변하지 않는다.

StringBuilder

  • 특정 글자수가 넘어간다면 크기를 늘려서 불변 객체를 재할당하지않도록 하는것이다.
  • 메모리의 할당 수가 줄어든다.

Null

  • Null은 실제로 데이터상에서 값이 비어있다는것을 뜻한다.
  • "0"이라는 숫자는 없다라고 표현하지만, 데이터 상으로는 0이라는 데이터를 가지는것이고, "Null"은 값이 없다는 뜻이다.

Const

  • const는 상수(변하지 않는 수)이다.
  • const는 static(정적)의 맴버로 자동 처리된다.
  • const는 컴파일 타임에 값이 정해진다.
  • 기본 자료형이나 string에서는 가능하다.
  • 찐 상수가 필요할때는 Const 사용

Readonly

  • 프로그램을 시작할 때 런타임에 "딱 한번"만 설정(사용)가능하다.

Tuple

  • 데이터 타입 여러개를 묶어서 사용할 수 있다.
  • 클래스 안에서 "딱 한번"만 쓸 때
  • 하지만 남용하면 가독성이 떨어진다.
// Tuple
public (int x, int y, int z) a = (5, 4, 5);
// Tuple
public (int, string) values = (5, "Hello")

Optional Parameter

  • 매개변수로 갖고있어야하는데, 입력을 하지 않는다면 기본값으로 설정되게 할때
  • 알아두면 좋지만 남용하지 않는것이 좋다.(의도를 파악 못할 수 도있음)
public class Tester
{
  public void Run()
  {
      // 입력 따로 안하면 기본값으로 세팅되게...
      Monster monster = new();
      
      Console.WriteLine(monster.Health);
  }
}

public class Monster
{
  public int Health { get; private  set; }
  
  // 디폴트 체력을 설정하게끔 하는건 맞기는 한데,
  // 애초에 입력하면서 생성하길 바랬음.
  public Monster(int health = 50)
  {
      Health = health;
  }

0개의 댓글