Bagikan melalui


Operator penambahan - + dan +=

Jenis-jenis numerik integral dan floating-point bawaan, tipe string, dan tipe delegasi semuanya mendukung operator-operator dan .

Referensi bahasa C# mendokumentasikan versi bahasa C# yang paling baru dirilis. Ini juga berisi dokumentasi awal untuk fitur dalam pratinjau publik untuk rilis bahasa yang akan datang.

Dokumentasi mengidentifikasi fitur apa pun yang pertama kali diperkenalkan dalam tiga versi terakhir bahasa atau dalam pratinjau publik saat ini.

Petunjuk / Saran

Untuk menemukan kapan fitur pertama kali diperkenalkan di C#, lihat artikel tentang riwayat versi bahasa C#.

Untuk informasi tentang operator aritmatika +, lihat bagian operator unary plus dan minus serta bagian operator penambahan + dalam artikel operator aritmatika .

Penggabungan string

Ketika satu atau kedua operand berjenis string, operator + menggabungkan representasi string dari operand-nya (representasi string null adalah string kosong):

Console.WriteLine("Forgot" + "white space");
Console.WriteLine("Probably the oldest constant: " + Math.PI);
Console.WriteLine(null + "Nothing to add.");
// Output:
// Forgotwhite space
// Probably the oldest constant: 3.14159265358979
// Nothing to add.

Interpolasi String menyediakan cara yang lebih nyaman untuk memformat string:

Console.WriteLine($"Probably the oldest constant: {Math.PI:F2}");
// Output:
// Probably the oldest constant: 3.14

Anda dapat menggunakan interpolasi string untuk menginisialisasi konstanta string ketika semua ekspresi yang digunakan sebagai pengganti juga merupakan konstanta string.

Operator + melakukan perangkaian string untuk string literal UTF-8. Operator ini menggabungkan dua objek ReadOnlySpan<byte>.

Mendelegasikan kombinasi

Untuk operan dengan jenis delegasi yang sama, + operator mengembalikan instans delegasi baru yang, saat dipanggil, memanggil operand sebelah kiri lalu memanggil operand sebelah kanan. Jika salah satu operand adalah null, + operator mengembalikan nilai operand lain (yang mungkin nulljuga ). Contoh berikut menunjukkan bagaimana delegasi dapat digabungkan menggunakan + operator:

Action a = () => Console.Write("a");
Action b = () => Console.Write("b");
Action ab = a + b;
ab();  // output: ab

Untuk menghapus delegasi, gunakan - operator.

Untuk informasi selengkapnya tentang jenis delegasi, lihat Delegasi .

Operator penugasan penambahan +=

Ekspresi yang menggunakan += operator, seperti

x += y

Setara dengan:

x = x + y

Kecuali bahwa x hanya dievaluasi sekali.

Contoh berikut menunjukkan penggunaan operator +=:

int i = 5;
i += 9;
Console.WriteLine(i);
// Output: 14

string story = "Start. ";
story += "End.";
Console.WriteLine(story);
// Output: Start. End.

Action printer = () => Console.Write("a");
printer();  // output: a

Console.WriteLine();
printer += () => Console.Write("b");
printer();  // output: ab

Anda juga menggunakan operator += untuk menentukan metode penanganan aktivitas saat berlangganan peristiwa . Untuk informasi selengkapnya, lihat Cara berlangganan dan membatalkan langganan dari acara.

Kelebihan beban operator

Jenis yang ditentukan pengguna dapat kelebihan beban operator +. Saat Anda membebani operator biner + secara implisit, Anda juga secara implisit membebani += operator. Dimulai dengan C# 14, jenis yang ditentukan pengguna dapat secara eksplisit membebani += operator untuk memberikan implementasi yang lebih efisien. Biasanya, tipe melakukan overload pada operator += karena nilainya dapat diperbarui langsung di tempat, daripada mengalokasikan instans baru untuk menampung hasil penambahan. Jika jenis tidak memberikan kelebihan beban eksplisit, pengkompilasi menghasilkan kelebihan beban implisit.

Spesifikasi bahasa C#

Untuk informasi selengkapnya, lihat bagian operator Unary plus dan operator Penambahan dalam spesifikasi bahasa C# . Untuk informasi selengkapnya tentang kelebihan beban operator penetapan majemuk di C# 14 dan yang lebih baru, lihat spesifikasi fitur penetapan majemuk yang ditentukan pengguna .

Lihat juga