程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#基礎知識 >> C#難點逐個擊破(5):類的訪問類型

C#難點逐個擊破(5):類的訪問類型

編輯:C#基礎知識
講這四類之間的區別時有必要講解一個概念:程序集。程序集(Assembly),可以簡單理解為編譯之後生成的.dll或.exe文件,相對於namespace是類庫的邏輯組織形式,它可以稱為程序類庫的物理組織形式,msdn上描述“程序集包含描述它們自己的內部版本號和它們包含的所有數據和對象類型的詳細信息的元數據”。一般情況是一個程序集可以包含一個或者多個命名空間。

Public:對其他任何類的任何方法都是可見的;
Private:本類中定義的成員只有本類的方法才能訪問;
Protected:本類中的成員只有本類的方法及繼承本類的類的方法才能訪問;
internal:本類中的成員只有本類所在的程序集中的任何類的方法訪問;
protected internal:為protected與internal的並集。
因此從訪問級別由高到低應當是Public>protected internal>internal>Protected>Private

類的默認修飾符為internal ,類中的成員變量默認修飾符為private,namespace可認為修飾符為public。另一點在msdn上也提到繼承類的訪問級別不能大於被繼承類的訪問級別,如internal的類不能繼承private的類。
代碼如下:

using System;

/******************************
* Chapter:C#難點逐個擊破(五)
* Author:王洪劍
* Date:2010-1-15
* Blog:http://www.51obj.cn/
* Email:[email protected]
* Description:訪問修改符
* ***************************/
namespace TestMain
{
public class A
{
public void Alert()
{
}
}

internal class B:A
{
internal new void Alert()
{
Console.WriteLine("you");
}
}

class Program
{
static void Main()
{
B b=new B();
b.Alert();

}
}
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved