您的位置:首页 > 其它

private,protected,public和internal的区别

2016-06-23 09:44 351 查看
private 只能在本类中使用

protected 只能在本类与子类中使用

internal 只能在同一命名空间(程序集)中使用

例子:

该示例包含两个文件:Assembly1.cs 和 Assembly2.cs。第一个文件包含内部基类 BaseClass。在第二个文件中,实例化 BaseClass 的尝试将产生错误。

// Assembly1.cs
// compile with: /target:library
internal class BaseClass
{
public static int intM = 0;
}


// Assembly1_a.cs
// compile with: /reference:Assembly1.dll
class TestAccess
{
static void Main()
{
BaseClass myBase = new BaseClass();   // CS0122
}
}


在此示例中,使用与示例 1 中所用的文件相同的文件,并将 BaseClass 的可访问性级别更改为 public。还将成员 IntM 的可访问性级别更改为internal。在此例中,您可以实例化类,但不能访问内部成员。

// Assembly2.cs
// compile with: /target:library
public class BaseClass
{
internal static int intM = 0;
}


// Assembly2_a.cs
// compile with: /reference:Assembly1.dll
public class TestAccess
{
static void Main()
{
BaseClass myBase = new BaseClass();   // Ok.
BaseClass.intM = 444;    // CS0117
}
}


public 所有类均可使用
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: