Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah C# Mencapai Fungsi Kata Kunci 'rakan' C untuk Capaian Terkawal kepada Ahli Persendirian?

Bagaimanakah C# Mencapai Fungsi Kata Kunci 'rakan' C untuk Capaian Terkawal kepada Ahli Persendirian?

Barbara Streisand
Lepaskan: 2024-12-27 06:41:09
asal
901 orang telah melayarinya

How Does C# Achieve the Functionality of C  's

Rakan dalam C dan Ketiadaannya dalam C#

Dalam C , kata kunci "rakan" memberikan akses kepada ahli persendirian kelas kepada luaran kelas. Ini membolehkan perkongsian maklumat peribadi terkawal tanpa menjejaskan pengkapsulan. Walau bagaimanapun, konsep ini tidak dilaksanakan secara langsung dalam C#.

Merapatkan Jurang: InternalsVisibleTo

C# menawarkan atribut yang dipanggil InternalsVisibleTo sebagai penghampiran paling hampir kepada "rakan." Ia membenarkan perhimpunan mengakses ahli dalaman (termasuk ahli persendirian) perhimpunan lain. Ini menyediakan bentuk akses terkawal yang terhad.

Pertimbangkan senario berikut:

  • Anda mempunyai kelas bernama ClassA dengan ahli persendirian.
  • Anda mahukan kelas ujian , Penguji, untuk mengakses ahli peribadi ini.

Untuk mencapai ini, anda akan meletakkan atribut berikut dalam Fail AssemblyInfo.cs ClassA:

[assembly: InternalsVisibleTo("TesterAssembly")]
Salin selepas log masuk

Ganti "TesterAssembly" dengan nama perhimpunan yang mengandungi kelas Penguji. Dengan berbuat demikian, anda memberikan TesterAssembly akses kepada ahli dalaman ClassA.

Contoh Penggunaan

Untuk menggambarkan cara ini berfungsi, berikut ialah ringkas contoh:

ClassA.cs

public class ClassA
{
    private int _privateMember;

    public int PublicMember { get; set; }
}
Salin selepas log masuk

Tester.cs

using ClassAAssembly;

public class Tester
{
    public void Test()
    {
        // Access private member through InternalsVisibleTo
        var instance = new ClassA();
        instance._privateMember = 10;
    }
}
Salin selepas log masuk

Dengan menggunakan atribut InternalsVisibleTo, anda boleh mengawal kebolehaksesan ahli dalaman (walaupun ahli persendirian) pada peringkat perhimpunan, mendayakan ujian kod terurus tanpa mendedahkan data sensitif kepada pengguna luar.

Atas ialah kandungan terperinci Bagaimanakah C# Mencapai Fungsi Kata Kunci 'rakan' C untuk Capaian Terkawal kepada Ahli Persendirian?. 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