C#中五种访问修饰符作用范围实例详解
在C#语言中,共有五种访问修饰符:public、private、protected、internal、protected internal。作用范围如下表:
访问修饰符 说明
public 公有访问。不受任何限制。
private 私有访问。只限于本类成员访问,子类,实例都不能访问。
protected 保护访问。只限于本类和子类访问,实例不能访问。
internal 内部访问。只限于本项目内访问,其他不能访问。
protected internal 内部保护访问。只限于本项目或是子类访问,其他不能访问
C#成员类型的可修饰及默认修饰符如下表:
成员类型 默认修饰符 可被修饰符
enum public none
class private public、protected、internal、private、
protected internal
interface public none
struct private public、internal、private
下面我就结合实例,讲一下public、private、protected、internal和protected internal的作用范围。
如下代码:
[csharp] view plain copy using System; using System.Collections.Generic; using System.Text; namespace AccessModifier { public class AccessModifierClass { public string GetPublicString() { return "Public String"; } protected string GetProtectedString() { return "Protected String"; } private string GetPrivateString() { return "Private String"; } internal string GetInternalString() { return "Internal String"; } protected internal string GetProtectedInternalString() { return "Protected Internal String"; } void AvailableAccessModifier() { this.GetPublicString(); this.GetPrivateString(); this.GetInternalString(); this.GetProtectedInternalString(); this.GetProtectedString(); } } public class TestAccessModifierClass1 { void AvailableAccessModifier() { AccessModifierClass item = new AccessModifierClass(); item.GetPublicString(); item.GetInternalString(); item.GetProtectedInternalString(); } } public class TestAccessModifierClass2 : AccessModifierClass { void AvailableAccessModifier() { AccessModifierClass item = new AccessModifierClass(); item.GetPublicString(); item.GetInternalString(); item.GetProtectedInternalString(); base.GetProtectedString(); } } }
AccessModifierClass 是我们的访问修饰符类,里面有五种访问修饰符方法,可见在 AccessModifierClass 类里面的 AvailableAccessModifier() 方法可以访问所有的方法。
在 TestAccessModifierClass1 类中的 AvailableAccessModifier() 方法只能访问 public、Internal 和 Protected Internal 方法。
TestAccessModifierClass2 类继承自 AccessModifierClass 类,所以它的 AvailableAccessModifier() 方法可以访问 public,internal,protected和protected internal 方法。
Atas ialah kandungan terperinci C#中五种访问修饰符作用范围实例详解. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Sama ada anda seorang pemula atau profesional yang berpengalaman, menguasai C# akan membuka jalan untuk kerjaya anda.

Perkembangan teknologi kecerdasan buatan (AI) sedang giat dijalankan hari ini, dan ia telah menunjukkan potensi dan pengaruh yang besar dalam pelbagai bidang. Hari ini Dayao akan berkongsi dengan anda 4 rangka kerja projek berkaitan LLM model AI sumber terbuka .NET, dengan harapan dapat memberi anda sedikit rujukan. https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.mdSemanticKernelSemanticKernel ialah kit pembangunan perisian sumber terbuka (SDK) yang direka untuk menyepadukan model bahasa besar (LLM) seperti OpenAI, Azure

Di Java, persendirian bermaksud "peribadi" dan merupakan pengubah kawalan akses yang digunakan untuk mengubah suai kelas, sifat dan kaedah. Ahli kelas yang diubah suai dengan persendirian hanya boleh diakses dan diubah suai oleh kaedah kelas itu sendiri, dan tidak boleh diakses dan dirujuk oleh mana-mana kelas lain (termasuk subkelas kelas oleh itu, pengubahsuai persendirian mempunyai tahap perlindungan tertinggi);

Jika anda seorang pembangun .NET, anda mesti sedar tentang kepentingan mengoptimumkan fungsi dan prestasi dalam menyampaikan perisian berkualiti tinggi. Dengan menggunakan pakar sumber yang disediakan dan mengurangkan masa memuatkan tapak web, anda bukan sahaja mencipta pengalaman yang menyenangkan untuk pengguna anda tetapi juga mengurangkan kos infrastruktur.

Peribadi ialah pengubah suai akses Java yang mengehadkan kebolehcapaian fungsi kepada hanya kelas yang ditakrifkan, termasuk: fungsi itu tidak boleh diakses dalam kelas lain. Fungsi ini juga tidak boleh diakses dalam subkelas.

Dari segi pemprosesan permintaan selaras tinggi, .NETASP.NETCoreWebAPI berprestasi lebih baik daripada JavaSpringMVC Sebabnya termasuk: Kompilasi awal AOT, yang mengurangkan masa permulaan pengurusan memori, di mana pembangun bertanggungjawab untuk memperuntukkan dan melepaskan memori objek.

Tidak, kami tidak boleh mengisytiharkan kelas peringkat atas sebagai peribadi atau dilindungi. Ia boleh menjadi awam atau lalai (tiada pengubah suai). Jika tiada pengubahsuai, harus ada akses lalai. Sintaks //Atoplevelclass publicclassTopLevelClassTest{ //Classbody} Jika kelas peringkat atas diisytiharkan sebagai peribadi, pengkompil akan melaporkan ralat, menggesa "Pengubah suai peribadi tidak dibenarkan di sini." Ini bermakna kelas peringkat atas tidak boleh peribadi, perkara yang sama berlaku untuk akses yang dilindungi

C#.NET Soalan dan jawapan wawancara termasuk pengetahuan asas, konsep teras, dan penggunaan lanjutan. 1) Pengetahuan asas: C# adalah bahasa berorientasikan objek yang dibangunkan oleh Microsoft dan digunakan terutamanya dalam rangka .NET. 2) Konsep teras: Delegasi dan peristiwa membolehkan kaedah mengikat dinamik, dan LINQ menyediakan fungsi pertanyaan yang kuat. 3) Penggunaan Lanjutan: Pengaturcaraan Asynchronous meningkatkan respons, dan pokok ekspresi digunakan untuk pembinaan kod dinamik.
