C#访问修饰符——public ,private , internal ,protected和protected internal
C#访问控制修饰符——public ,private , internal ,protected及protected internal
下面是C#访问控制修饰符——public ,private , internal ,protected及protected internal的特性,作用域,及C#成员类型的可修饰及默认修饰符的总结,及图解。
public 修饰的类,可以在整个系统的任意地方调用,是完全公开的.
public 关键字是类型和类型成员的访问修饰符。公共访问是允许的最高访问级别,对访问公共成员没有限制。
public 意味着在其后声明的所有成员对所有的人都可以取。
private 相反的,只能在类内部调用.任何实例,无法调用private调用.
private 关键字是一个成员访问修饰符。私有访问是允许的最低访问级别。私有成员只有在声明它们的类和结构体中才是可访问的。
private关键字意味着除了该类型的创建者和类的内部成员函数之外,任何人都不能存取这些成员。
internal 仅为同项目(这里的项目是只单独的项目,而不是整个解决方案)调用,按照我的理解,应该是和java的friendly一样的效果.
internal 关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的。
protected 自己及自己的子类可以调用
protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问。
protected internal 内部保护访问。只限于本项目或是子类访问,其他不能访问
C#访问控制修饰符属性如下表:
C#成员类型的可修饰及默认修饰符如下表:
成员类型 | 默认修饰符 | 可被修饰符 |
enum | public | none |
class | private | public、protected、internal、private、protected internal |
interface | public | none |
struct | private | public、internal、private |
下面是帮助大家理解的代码:
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();
}
}
}
上一篇: mongodb的安装与使用
下一篇: 模板总结
推荐阅读
-
你真正了解public、internal、protected、private吗?不妨幽默一些
-
解析Visual C# 7.2中的private protected访问修饰符
-
[译]C# 7系列,Part 5: private protected 访问修饰符
-
浅析php面向对象public private protected 访问修饰符
-
php面向对象public private protected 访问修饰符
-
C#访问修饰符——public ,private , internal ,protected和protected internal
-
php面向对象public private protected 访问修饰符_PHP教程
-
浅析php面向对象public private protected 访问修饰符_PHP教程
-
ASP.NET学习笔记(十二)private、protected、public 和 internal
-
浅析php面向对象public private protected 访问修饰符