Ekspresi new dengan Tipe Target
Sederhanakan pembuatan objek dengan pengetikan berdasarkan target.
Ekspresi new dengan Tipe Target adalah pelajaran C# Academy gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C# Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C# Academy mencakup 4 pelajaran total.
new dengan Tipe Target
Sejak C# 9, Anda dapat menulis Type x = new(); dan menghilangkan tipe setelah new ketika tipe target sudah diketahui.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
List<int> numbers = new();
numbers.Add(1);
Console.WriteLine(numbers.Count);
}
}Menghapus Pengulangan
Ketika variabel sudah menyatakan tipenya, menuliskan tipe itu lagi setelah new hanya menambah kerumitan. new() yang kosong menghapus pengulangan tersebut.
using System;
using System.Text;
class Program {
static void Main() {
StringBuilder sb = new();
sb.Append("Hi");
Console.WriteLine(sb.ToString());
}
}Meneruskan Argumen Konstruktor
new() dengan tipe target tetap menerima argumen konstruktor di dalam tanda kurung.
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);
}
}Dengan Penginisialisasi Objek
Anda dapat menggabungkan new dengan tipe target dan blok penginisialisasi objek.
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);
}
}Dalam Ruas Data
new dengan tipe target juga berfungsi untuk penginisialisasi ruas data, sehingga deklarasi tetap ringkas.
using System;
using System.Collections.Generic;
class Program {
static List<string> items = new();
static void Main() {
items.Add("a");
Console.WriteLine(items.Count);
}
}Dalam Argumen Metode
Ketika parameter memiliki tipe yang diketahui, Anda dapat langsung meneruskan new() sebagai argumen.
using System;
using System.Collections.Generic;
class Program {
static void Print(List<int> list) {
Console.WriteLine(list.Count);
}
static void Main() {
Print(new());
}
}Mengembalikan new()
Jika tipe kembalian metode sudah diketahui, Anda dapat mengembalikan new() tanpa mengulangi nama tipe.
using System;
using System.Collections.Generic;
class Program {
static List<int> Make() {
return new() { 1, 2, 3 };
}
static void Main() {
Console.WriteLine(Make().Count);
}
}Perbandingan dengan var
var x = new List<int>() menyatakan tipe di sisi kanan; List<int> x = new() menyatakannya di sisi kiri. Pilih yang lebih mudah dibaca.
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);
}
}Ambiguitas Adalah Kesalahan
Jika kompilator tidak dapat menentukan tipe target, new() gagal. Target harus jelas dari konteksnya.
using System;
class Program {
static void Main() {
object o = new object();
Console.WriteLine(o.GetType().Name);
}
}Keterbacaan dengan Tipe Panjang
new dengan tipe target sangat berguna untuk tipe generik yang panjang karena Anda tidak perlu menuliskan tipe tersebut dua kali.
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);
}
}Gaya Modern
new dengan tipe target menjaga deklarasi tetap bersih sekaligus mempertahankan pengetikan statis lengkap dan pemeriksaan kompilator.
using System;
using System.Collections.Generic;
class Program {
static void Main() {
Queue<string> q = new();
q.Enqueue("first");
Console.WriteLine(q.Dequeue());
}
}Pemeriksaan Singkat
Uji pemahaman Anda tentang ekspresi new dengan tipe target.
Ringkasan
new() dengan tipe target memungkinkan Anda menghilangkan tipe setelah new ketika tipe target sudah diketahui, sehingga mengurangi pengulangan dalam deklarasi, ruas data, argumen, dan nilai kembalian.
Fitur ini tetap menerima argumen konstruktor dan penginisialisasi, gagal ketika tipe bersifat ambigu, serta melengkapi var sebagai gaya modern yang sepenuhnya aman secara tipe.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Ekspresi new dengan Tipe Target” gratis?
Ya — teks lengkap “Ekspresi new dengan Tipe Target” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C# Academy, upgrade ke CoddyKit PRO. Kursus C# Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Ekspresi new dengan Tipe Target”?
Sederhanakan pembuatan objek dengan pengetikan berdasarkan target. Kamu berlatih C# Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C# Academy?
Tidak diperlukan pengalaman sebelumnya. C# Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.
Berapa lama pelajaran “Ekspresi new dengan Tipe Target” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C# Academy ini?
Ya. Setiap pelajaran C# Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Inferensi Tipe Variabel Lokal dengan var
- Kapan Sebaiknya Menghindari var
- Tipe dynamic
- Ekspresi new dengan Tipe Target