前言
在学习C#过程中,一开始为了方便大概率只会使用Public,但访问修饰符远不止这些,下面是学习笔记的一些总结,如有错误,还望指导。
一、访问修饰符
与Java访问修饰符private,default,protected,public 不同;
C#有public、protected、internal、private、protected internal、private protected (C#7.2以后可用)六种。
一些方法和属性可供类或结构外部的代码(称为“客户端代码”)调用或访问。 另一些方法和属性只能在类或结构本身中使用。 请务必限制代码的可访问性,仅供预期的客户端代码进行访问。
代码如下(示例):
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();
}
}
}
二.总结
C# 方法默认访问级别 : private
C# 类默认访问级别 : internal