您好,欢迎来到世旅网。
搜索
您的当前位置:首页C#访问修饰符总结

C#访问修饰符总结

来源:世旅网
C#访问修饰符总结

C#共有五种访问修饰符:public、private、protected、internal、protected internal。 访问修饰符 public private protected internal protected internal 说明 公有访问。不受任何限制。 私有访问。只限于本类成员访问,子类,实例都不能访问。 保护访问。只限于本类和子类访问,实例不能访问。 内部访问。只限于本项目内访问,其他不能访问。 内部保护访问。只限于本项目或是子类访问,其他不能访问 下面我就结合实例,讲一下public、private、protected、internal和protected internal的作用范围。

新建一控件台应用程序,在解决方案中添加一个类库项目,其中类文件代码如下所示。 //类库中的三个类 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(); } } }

AccessModifierClass是我们的访问修饰符类,里面有五种访问修饰符

在TestAccessModifierClass1类中的AvailableAccessModifier()方法只能访问public、Internal和Protected Internal方法。

TestAccessModifierClass2类继承自AccessModifierClass类,所以它的AvailableAccessModifier()方法可以访问public,internal,protected和protected internal方法。

在新建一个工程,且引用AccessModifierClass类的dll,代码如下。 using System;

using System.Collections.Generic; using System.Text;

using AccessModifier;

namespace AccessModifierApp {

public class AccessModifierAppClass1 {

void AvailableAccessModifier() {

AccessModifierClass item = new AccessModifierClass(); item.GetPublicString(); } }

public class AccessModifierAppClass2 : AccessModifierClass {

void AvailableAccessModifier() {

AccessModifierClass item = new AccessModifierClass(); item.GetPublicString(); base.GetProtectedString();

base.GetProtectedInternalString(); } }

public class program {

public static void Main() {

} } }

AccessModifierAppClass1类的AvailableAccessModifier()方法只能访问public方法。 AccessModifierAppClass2类继承自AccessModifierClass类,所它的AvailableAccessModifier()方法

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- esig.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务