Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
operator baru - Operator
Operator new
membuat instans jenis baru. Anda juga dapat menggunakan kata kunci new
sebagai pengubah deklarasi anggota atau batasan tipe generik.
Untuk membuat instans baru dari suatu tipe, Anda biasanya memanggil salah satu konstruktor dari tipe tersebut menggunakan operatornew
:
var dict = new Dictionary<string, int>();
dict["first"] = 10;
dict["second"] = 20;
dict["third"] = 30;
Console.WriteLine(string.Join("; ", dict.Select(entry => $"{entry.Key}: {entry.Value}")));
// Output:
// first: 10; second: 20; third: 30
Anda dapat menggunakan penginisialisasi objek atau koleksi dengan operator new
untuk membuat instans dan menginisialisasi objek dalam satu pernyataan, seperti yang ditunjukkan contoh berikut:
var dict = new Dictionary<string, int>
{
["first"] = 10,
["second"] = 20,
["third"] = 30
};
Console.WriteLine(string.Join("; ", dict.Select(entry => $"{entry.Key}: {entry.Value}")));
// Output:
// first: 10; second: 20; third: 30
Ekspresi pemanggilan konstruktor dititik target. Artinya, jika tipe target ekspresi diketahui, Anda bisa menghilangkan nama tipe, seperti yang diperlihatkan contoh berikut:
List<int> xs = new();
List<int> ys = new(capacity: 10_000);
List<int> zs = new() { Capacity = 20_000 };
Dictionary<int, List<int>> lookup = new()
{
[1] = new() { 1, 2, 3 },
[2] = new() { 5, 8, 3 },
[5] = new() { 1, 0, 4 }
};
Seperti yang diperlihatkan contoh sebelumnya, Anda selalu menggunakan tanda kurung dalam ekspresi new
yang sesuai jenis target.
Jika tipe target ekspresi new
tidak diketahui (misalnya, saat Anda menggunakan kata kunci var
), Anda harus menentukan nama tipe.
Anda juga menggunakan operator new
untuk membuat instans array, seperti yang ditunjukkan contoh berikut:
var numbers = new int[3];
numbers[0] = 10;
numbers[1] = 20;
numbers[2] = 30;
Console.WriteLine(string.Join(", ", numbers));
// Output:
// 10, 20, 30
Gunakan sintaks inisialisasi array untuk membuat instance array dan mengisinya dengan elemen dalam satu pernyataan. Contoh berikut ini menunjukkan berbagai cara bagaimana Anda dapat melakukannya:
var a = new int[3] { 10, 20, 30 };
var b = new int[] { 10, 20, 30 };
var c = new[] { 10, 20, 30 };
Console.WriteLine(c.GetType()); // output: System.Int32[]
Untuk informasi selengkapnya tentang array, lihat Array.
Untuk membuat instans dari jenis anonim, gunakan sintaks operator new
dan penginisialisasi objek:
var example = new { Greeting = "Hello", Name = "World" };
Console.WriteLine($"{example.Greeting}, {example.Name}!");
// Output:
// Hello, World!
Anda tidak perlu menghancurkan instans tipe yang dibuat sebelumnya. Instans dari kedua tipe referensi dan nilai akan dimusnahkan secara otomatis. Instans tipe nilai dihancurkan segera setelah konteks yang memuatnya dihancurkan. Instans dari tipe referensi dihancurkan oleh pengumpul sampah pada waktu yang tidak ditentukan setelah referensi terakhir untuknya dihapus.
Untuk instans tipe yang berisi sumber daya yang tidak dikelola, misalnya, pegangan file, disarankan untuk menggunakan pembersihan deterministik untuk memastikan bahwa sumber daya yang dikandungnya dilepaskan sesegera mungkin. Untuk informasi selengkapnya, lihat System.IDisposable referensi API dan using
artikel pernyataan .
Jenis yang ditentukan pengguna tidak dapat membebani new
operator secara berlebihan.
Untuk informasi lebih lanjut, lihatlah bagian Operator sizeof dari Spesifikasi bahasa C#.
Untuk informasi selengkapnya tentang ekspresi berjenis target new
, lihat catatan proposal fitur.
Umpan balik .NET
.NET adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: