C#基础之访问修饰符
访问修饰符是用于设置类型和类型成员的可访问性级别,设置控制类、属性、方法等成员在程序中的权限范围。C#提供了5个访问修饰符关键字,使用它们可指定 七个可访问性级别。本文介绍C#提供的访问修饰符。
1、public:公有的,访问不受限制。 2、private:私有的,只有同一类或结构中的代码才可以访问。 3、internal:内部的,同一程序集中的任何代码都可以访问。 4、protected:受保护的,仅限于同一个类或从该类派生的类中的代码可以访问。 5、protected internal:访问限于当前程序集或派生自包含类的类型。 6、private protected:访问限于包含类或当前程序集中派生自包含类的类型。 7、file:已声明的类型仅在当前源文件中可见。
通过下表是每个访问修饰符在不同位置上的访问限制:


using System;using System.Text;namespace Fountain.Net.Base.ExampleLib{ public class Modifier { /// <summary> /// 声明内部的字符串变量 /// </summary> internal string internalFruit=string.Empty; /// <summary> /// 声明公有的字符串变量 /// </summary> public string publicFruit; /// <summary> /// 声明内部受保护的字符串变量 /// </summary> internal protected string internalProtectedFruit=null; }}//-- 在同一程序集中的另一个类中调用访问类的成员using System;using System.Text;namespace Fountain.Net.Base.ExampleLib;{ public class UsingClass { /// <summary> /// 声明字符串变量,将类Modifier的internalFruit进行赋值 /// </summary> private string tempInternal=new Modifier().internalFruit; /// <summary> /// 声明字符串变量,将类Modifier的publicFruit进行赋值 /// </summary> private string tempPublic= new Modifier().publicFruit; /// <summary> /// 声明字符串变量,将类Modifier的internalProtectedFruit进行赋值 /// </summary> private string tempProtected=new Modifier().internalProtectedFruit; }}//-- 在不同程序集中,只能调用Modifier类的publicFruit,因为它是公有的using System;using System.Text;using Fountain.Net.Base.ExampleLib;namespace Fountain.Net.Base.Sample{ class Program { static void Main(string[] args) { try { // 声明字符串变量,将类Modifier的publicFruit进行赋值 string tempPublic = new Modifier().publicFruit; } catch (Exception e) { Console.WriteLine("异常信息: {0}", e.Message); } // 等待接收控制台输入 Console.ReadLine(); } }}