前言
訪問修飾符是用于設(shè)置類型和類型成員的可訪問性級別,設(shè)置控制類、屬性、方法等成員在程序中的權(quán)限范圍。C#提供了5個訪問修飾符關(guān)鍵字,使用它們可指定 七個可訪問性級別。本文介紹C#提供的訪問修飾符。
訪問修飾符
C#中的訪問修飾符關(guān)鍵字有public、private、internal、protected、file,通過這些關(guān)鍵字在進(jìn)行聲明時指定類型或成員的可訪問性,形成下面的七個可訪問性級別:1、public:公有的,訪問不受限制。
2、private:私有的,只有同一類或結(jié)構(gòu)中的代碼才可以訪問。
3、internal:內(nèi)部的,同一程序集中的任何代碼都可以訪問。
4、protected:受保護(hù)的,僅限于同一個類或從該類派生的類中的代碼可以訪問。
5、protected internal:訪問限于當(dāng)前程序集或派生自包含類的類型。
6、private protected:訪問限于包含類或當(dāng)前程序集中派生自包含類的類型。
7、file:已聲明的類型僅在當(dāng)前源文件中可見。
通過下表是每個訪問修飾符在不同位置上的訪問限制:
默認(rèn)訪問限制
C#語言中如果聲明時未使用訪問修飾符關(guān)鍵,則都有默認(rèn)的訪問修飾符來限制訪問,下表不同類型的默認(rèn)訪問。
示例
下面我三段簡單的代碼,了解訪問修飾符在編寫代碼上的體現(xiàn)。using System;
using System.Text;
namespace Fountain.Net.Base.ExampleLib
{
public class Modifier
{
/// <summary>
/// 聲明內(nèi)部的字符串變量
/// </summary>
internal string internalFruit=string.Empty;
/// <summary>
/// 聲明公有的字符串變量
/// </summary>
public string publicFruit;
/// <summary>
/// 聲明內(nèi)部受保護(hù)的字符串變量
/// </summary>
internal protected string internalProtectedFruit=null;
}
}
//-- 在同一程序集中的另一個類中調(diào)用訪問類的成員
using System;
using System.Text;
namespace Fountain.Net.Base.ExampleLib;
{
public class UsingClass
{
/// <summary>
/// 聲明字符串變量,將類Modifier的internalFruit進(jìn)行賦值
/// </summary>
private string tempInternal=new Modifier().internalFruit;
/// <summary>
/// 聲明字符串變量,將類Modifier的publicFruit進(jìn)行賦值
/// </summary>
private string tempPublic= new Modifier().publicFruit;
/// <summary>
/// 聲明字符串變量,將類Modifier的internalProtectedFruit進(jìn)行賦值
/// </summary>
private string tempProtected=new Modifier().internalProtectedFruit;
}
}
//-- 在不同程序集中,只能調(diào)用Modifier類的publicFruit,因?yàn)樗枪械?/span>
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進(jìn)行賦值
string tempPublic = new Modifier().publicFruit;
}
catch (Exception e)
{
Console.WriteLine("異常信息: {0}", e.Message);
}
// 等待接收控制臺輸入
Console.ReadLine();
}
}
}
小結(jié)
以上就是C#中的訪問修飾符的內(nèi)容,通過這些限制對數(shù)據(jù)及對象進(jìn)行封裝。
該文章在 2024/3/26 18:57:27 編輯過