0Pricing
C# Academy · 강의

대상 형식이 지정된 new 식

대상 형식 지정을 사용해 객체 생성을 간소화합니다.

대상 형식이 지정된 new 식은(는) CoddyKit의 무료 C# Academy 강의입니다. 이것은 4개 중 4번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 C# Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

대상 형식이 지정된 new

C# 9부터는 대상 형식을 알고 있을 때 Type x = new();와 같이 작성하여 new 뒤의 형식을 생략할 수 있습니다.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        List<int> numbers = new();
        numbers.Add(1);
        Console.WriteLine(numbers.Count);
    }
}

중복 제거

변수에 이미 형식이 표시되어 있다면 new 뒤에 같은 형식을 반복하는 것은 불필요합니다. 비어 있는 new()가 이를 제거합니다.

using System;
using System.Text;

class Program {
    static void Main() {
        StringBuilder sb = new();
        sb.Append("Hi");
        Console.WriteLine(sb.ToString());
    }
}

생성자 인수 전달

대상 형식이 지정된 new()에서도 괄호 안에 생성자 인수를 전달할 수 있습니다.

using System;

class Point {
    public int X, Y;
    public Point(int x, int y) { X = x; Y = y; }
}
class Program {
    static void Main() {
        Point p = new(3, 4);
        Console.WriteLine(p.X + ", " + p.Y);
    }
}

개체 초기화 식과 함께 사용하기

대상 형식이 지정된 new를 개체 초기화 블록과 결합할 수 있습니다.

using System;

class User {
    public string Name;
    public int Age;
}
class Program {
    static void Main() {
        User u = new() { Name = "Ann", Age = 30 };
        Console.WriteLine(u.Name + " " + u.Age);
    }
}

필드에서 사용하기

대상 형식이 지정된 new는 필드 초기화에도 사용할 수 있어 선언을 간결하게 유지해 줍니다.

using System;
using System.Collections.Generic;

class Program {
    static List<string> items = new();
    static void Main() {
        items.Add("a");
        Console.WriteLine(items.Count);
    }
}

메서드 인수에서 사용하기

매개 변수의 형식이 알려져 있다면 new()를 인수로 바로 전달할 수 있습니다.

using System;
using System.Collections.Generic;

class Program {
    static void Print(List<int> list) {
        Console.WriteLine(list.Count);
    }
    static void Main() {
        Print(new());
    }
}

new() 반환하기

메서드 반환 형식이 알려져 있다면 형식 이름을 반복하지 않고 new()를 반환할 수 있습니다.

using System;
using System.Collections.Generic;

class Program {
    static List<int> Make() {
        return new() { 1, 2, 3 };
    }
    static void Main() {
        Console.WriteLine(Make().Count);
    }
}

var와 비교하기

var x = new List<int>()는 오른쪽에 형식을 표시하고, List<int> x = new()는 왼쪽에 형식을 표시합니다. 더 읽기 좋은 쪽을 선택하십시오.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        var a = new List<int>();
        List<int> b = new();
        Console.WriteLine(a.Count + b.Count);
    }
}

모호하면 오류가 발생합니다

컴파일러가 대상 형식을 결정할 수 없으면 new()가 실패합니다. 대상 형식은 문맥을 통해 명확해야 합니다.

using System;

class Program {
    static void Main() {
        object o = new object();
        Console.WriteLine(o.GetType().Name);
    }
}

긴 형식에서의 가독성

대상 형식이 지정된 new는 장황한 제네릭 형식에서 특히 유용하며 형식을 두 번 작성하지 않아도 됩니다.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        Dictionary<string, List<int>> map = new();
        map["a"] = new() { 1, 2 };
        Console.WriteLine(map["a"].Count);
    }
}

현대적인 스타일

대상 형식이 지정된 new는 완전한 정적 형식 지정과 컴파일러 검사를 유지하면서 선언을 깔끔하게 만들어 줍니다.

using System;
using System.Collections.Generic;

class Program {
    static void Main() {
        Queue<string> q = new();
        q.Enqueue("first");
        Console.WriteLine(q.Dequeue());
    }
}

빠른 확인

대상 형식이 지정된 new 표현식에 대한 이해도를 확인해 보십시오.

복습

대상 형식이 지정된 new()를 사용하면 대상 형식이 이미 알려져 있을 때 new 뒤의 형식을 생략할 수 있습니다. 따라서 선언, 필드, 인수 및 반환에서 중복을 줄일 수 있습니다.

생성자 인수와 초기화 식은 계속 사용할 수 있고, 형식이 모호하면 실패합니다. 또한 완전히 형식 안전한 현대적 스타일로서 var를 보완합니다.

자주 묻는 질문

“대상 형식이 지정된 new 식” 강의는 무료인가요?

네 — “대상 형식이 지정된 new 식” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 C# Academy 강의 전체를 잠금 해제할 수 있습니다. C# Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“대상 형식이 지정된 new 식”에서 뭘 배우나요?

대상 형식 지정을 사용해 객체 생성을 간소화합니다. 브라우저에서 직접 실행하는 실습 코드로 C# Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

C# Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 C# Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 4번째 강의입니다.

“대상 형식이 지정된 new 식” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 C# Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 C# Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. var를 사용한 지역 변수 형식 추론
  2. var를 피해야 할 때
  3. dynamic 형식
  4. 대상 형식이 지정된 new 식
← C# Academy(으)로 돌아가기