• 百 度
  • 京 东
  • 淘 宝
  • 知 乎
  • Bing
  • Google
  • Yandex
  • Quora
  • GitHub
  • StackOverflow
  • SegmentFault
  • 医 疗

CSharp访问权限Public、Private、Protected、Internal说明

C#访问权限 PublicPrivateProtectedInternal 说明。
注意:
文章的链接里面(即文件的名称),不可以用 # 替代 Sharp ,否则链接无法打开;即网址链接里面,用 CSharp 替代 C# ;
文章分类的 categories 属性取值,也是不可以用 # 替代 Sharp ,否则链接无法打开;但是 tags 的取值,可以包含 # 号。



C#语言 代码块 的标注方法,使用 C# 或者 CSharp 都可以;





参考文档:
访问修饰符(C# 参考):
https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/keywords/access-modifiers
C#中Internal关键字的总结:
https://www.cnblogs.com/wowoblog/p/6970502.html

1. 一般权限修饰符号 Public、Private、Protected、Internal ;

public:访问不受限制;

private:访问限于包含类,私有的仅限于类自身;

protected:访问限于包含类或派生自包含类的类型,及类自身和子类型;

internal:访问限于当前程序集;

2. 特殊权限修饰符号 protected internal 、private protected ;

2.1. protected internal:访问限于当前程序集或派生自包含类的类型;

protected internal 指的是 protected 和 internal 并集,不是交集;

protected 和 internal 是 或者 的关系,protected 、internal 条件符合 二选一 即可;

用途:

1. `internal`可以让当前程序集内的,不是该类及该类型子类的其他类型,也取到该类型的值;
   即通过`internal`和`protected`一起让程序集内的所有类都可以取值到该类;

2. 通过`protected`让不是当前程序集内的,程序集外部的该类型及子类,可以取到该类型的值;
   即在程序集的外部,只有子类可以取到该类型的值;

2.2. private protected:访问限于包含类或当前程序集中派生自包含类的类型;

即在 protected 条件的前面,再加上一个 private 条件;

private 指的是当前程序集的 private ,即 将 protected 的作用范围 限定于 当前 程序集 ;

因为 private 限制于当前程序集,当前程序集之外的其他程序集,其他的子类,无法取得父类的取值;

说明:

1. `private` 限制为: 只有 当前程序集的子类,可以 访问该  类的 取值;

2. 不是当前程序集内的 该类的 子类,因为 ` private ` 的 限制 ,不可以 访问该  父类的 取值;;

3. 什么是程序集 ;

根据 MSDN 上通俗易懂的解释就是,一个完整的 .exe 或者是 .dll 文件就是一个程序集,
一般伴随着 exe程序集产生的还有一个程序集清单, .exe.config 文件。

以上是自己的资料总结。


转载请注明来源。

文章标题:CSharp访问权限Public、Private、Protected、Internal说明

本文作者:bas369.com

发布时间:2021-07-19, 19:58:00

最后更新:2021-07-26, 09:22:12

原始链接:https://www.bas369.com/more/learning_notes/2021/07/19/CSharp%E8%AE%BF%E9%97%AE%E6%9D%83%E9%99%90Public%E3%80%81Private%E3%80%81Protect%E3%80%81Internal%E8%AF%B4%E6%98%8E/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。


  • 关于我们
  • 苏公网安备 32132302010228号
  • 联系我们
目录