Rumah >pembangunan bahagian belakang >C++ >Apakah perbezaan antara kata kunci C#'dan `out` untuk mengubahsuai objek?

Apakah perbezaan antara kata kunci C#'dan `out` untuk mengubahsuai objek?

Susan Sarandon
Susan Sarandonasal
2025-01-24 12:01:09414semak imbas

What's the Difference Between C#'s `ref` and `out` Keywords for Modifying Objects?

C# ref dan out Kata Kunci: Perbezaan Yang Jelas

Dalam C#, apabila kaedah perlu mengubah suai objek yang diluluskan sebagai argumen, kata kunci ref dan out memainkan peranan penting. Walaupun kedua-duanya mendayakan pengubahsuaian, tingkah laku mereka berbeza dengan ketara.

ref Kata Kunci: Mengubah Suai Objek Sedia Ada

Kata kunci ref menandakan bahawa kaedah beroperasi terus pada objek asal yang diluluskan sebagai hujah, bukan salinan. Sebarang perubahan dalam kaedah secara langsung mempengaruhi objek asal. Yang penting, objek mesti dimulakan sebelum dihantar ke kaedah.

out Kata Kunci: Mencipta dan Memulangkan Objek

Sebaliknya, kata kunci out menunjukkan bahawa kaedah bertanggungjawab untuk memulakan objek. Kaedah memberikan nilai kepada objek, dan objek yang baru dimulakan ini kemudiannya dikembalikan kepada pemanggil. Parameter out diisytiharkan tetapi tidak memerlukan pemulaan sebelum panggilan kaedah.

Memilih Kata Kunci yang Tepat

Pilihan antara ref dan out bergantung pada tujuan kaedah:

  • Gunakan ref untuk mengubah suai objek sedia ada; kaedah tidak mencipta objek baharu.
  • Gunakan out untuk membuat dan mengembalikan objek baharu; kaedah ini bertanggungjawab untuk permulaan.

Contoh Ilustrasi:

<code class="language-csharp">public void ModifyWithRef(ref MyClass someClass)
{
    someClass.Property1 = 10;
}

public void CreateWithOut(out MyClass someClass)
{
    someClass = new MyClass { Property1 = 20 };
}</code>

ModifyWithRef mengubah suai someClass sedia ada menggunakan ref. CreateWithOut mencipta dan memulakan someClass menggunakan out. Perhatikan perbezaan keperluan permulaan apabila memanggil kaedah ini.

Atas ialah kandungan terperinci Apakah perbezaan antara kata kunci C#'dan `out` untuk mengubahsuai objek?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn