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:
Untuk mencapai ini, anda akan meletakkan atribut berikut dalam Fail AssemblyInfo.cs ClassA:
[assembly: InternalsVisibleTo("TesterAssembly")]
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; } }
Tester.cs
using ClassAAssembly; public class Tester { public void Test() { // Access private member through InternalsVisibleTo var instance = new ClassA(); instance._privateMember = 10; } }
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!