Rumah > pembangunan bahagian belakang > C++ > Bolehkah Ref dan Out Modifiers Digunakan dalam Kaedah Sambungan C#?

Bolehkah Ref dan Out Modifiers Digunakan dalam Kaedah Sambungan C#?

Mary-Kate Olsen
Lepaskan: 2025-01-07 16:46:41
asal
495 orang telah melayarinya

Can Ref and Out Modifiers Be Used in C# Extension Methods?

ref dan pengubah keluar dalam kaedah sambungan C#

Dalam kaedah sambungan yang memanjangkan jenis rujukan, parameter pertama tidak boleh menggunakan pengubah suai ref atau out. Walau bagaimanapun, bermula dengan C# 7.2, adalah mungkin untuk menambah pengubah suai ref kepada parameter pertama kaedah sambungan jenis nilai lanjutan (struct).

Sebab pengehadan ini ialah parameter pertama kaedah sambungan dianggap sebagai parameter penerima, yang mewakili tika yang dilanjutkan. Untuk jenis rujukan, parameter penerima sentiasa diluluskan oleh rujukan, jadi menggunakan pengubah suai ref atau out adalah berlebihan.

Walau bagaimanapun, untuk jenis nilai, parameter penerima dihantar mengikut nilai, yang bermaksud bahawa sebarang perubahan yang dibuat padanya dalam kaedah sambungan tidak akan ditunjukkan dalam contoh jenis nilai asal. Dengan menggunakan pengubah suai ref, anda boleh menghantar contoh jenis nilai melalui rujukan, membolehkan anda mengubah suai keadaannya dalam kaedah sambungan.

Contoh:

<code class="language-csharp">public struct MyProperties
{
    public string MyValue { get; set; }
}

public static class MyExtensions
{
    public static void ChangeMyValue(this ref MyProperties myProperties)
    {
        myProperties.MyValue = "hello from MyExtensions";
    }
}

public class MyClass
{
    public MyClass()
    {
        MyProperties myProperties = new MyProperties();
        myProperties.MyValue = "hello world";
        myProperties.ChangeMyValue(); // Now modifies the original myProperties instance
    }
}</code>
Salin selepas log masuk

Dalam contoh ini, kaedah sambungan ChangeMyValue boleh mengubah suai keadaan contoh jenis nilai ref menggunakan pengubah suai MyProperties. Ambil perhatian bahawa pengubah suai out masih tidak boleh digunakan pada parameter pertama kaedah sambungan.

Atas ialah kandungan terperinci Bolehkah Ref dan Out Modifiers Digunakan dalam Kaedah Sambungan C#?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan