惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
P
Palo Alto Networks Blog
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Blog — PlanetScale
Blog — PlanetScale
S
Schneier on Security
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
雷峰网
雷峰网
T
Tenable Blog
人人都是产品经理
人人都是产品经理
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Scott Helme
Scott Helme
SecWiki News
SecWiki News
C
CERT Recently Published Vulnerability Notes
Recorded Future
Recorded Future
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
Cloudbric
Cloudbric
C
Check Point Blog
Engineering at Meta
Engineering at Meta
TaoSecurity Blog
TaoSecurity Blog
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
N
News and Events Feed by Topic
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
腾讯CDC
量子位
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
Kaspersky official blog
Vercel News
Vercel News
F
Full Disclosure
T
Troy Hunt's Blog
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs

博客园 - 酷咖啡

收藏:精妙SQL语句 用户中心 - 博客园 博文阅读密码验证 - 博客园 web2.0配色收集 也谈C#中的反射用法 C#中相等的判断 [LoveCherry]一步一步学Linq to sql系列文章 [LoveCherry]无废话C#设计模式系列文章 .Net常用资源收集 Some word in English about Company website Reflection,Regular Expression,Threading,IO,AppDomain,Web Service/Remoting Service,ORM 收藏:笔记本得理器型号规格 如何让虚拟目录里面的webconfig不继承网站[转] 刚刚用上了百度Hi 自定义可绑定数据的业务对象实体和强类型 Asp.net 2.0 网站首页生成静态的方法 数据库设计的5种常见关系 [收集]visual studio文件扩展名 说说最近的工作
C#访问修饰符
酷咖啡 · 2008-04-15 · via 博客园 - 酷咖啡

首先介绍一下类的修饰符
作为一个顶级类(即不是内部类)只能使用public和internal两种访问修饰符,它们的意义如下。
— public:所修饰的顶级类的可访问域是它所在的程序和任何引用该程序的程序,因此访问不受限制。
— internal:所修饰的顶级类的可访问域是定义它的程序。
public不必介绍哪都可以new一下,但是internal必须在自己的项目内使用,
这里有必要向大家介绍项目和程序集,简单点项目包括:控制台应用程序,Windows应用程序,类库(Class Library)等,而程序集叫Assembly(也就是我们创建项目中的AssemblyInfo.cs文件),
一个项目也就是一个程序集,Assembly用处很大,但与我们的专题无关,不做介绍。
介绍上面的目的为了说明,一个项目的internal无法在另一个项目中调用,代码:

class1:

class2:

上面我建立了两个项目,一个是类库,一个是控制台,
上面我在控制台class2引入了类库class1,这些操作简略,大家可以看到我上面的class1用了public,
所以在class2成功的得到,大家把把class1修改为internal class1,就可以看到效果了,在class2中无法引出,
但是在class11中可以得到。

很简单,接下来我们介绍方法或者属性的修饰符:
概念性的东西拿来用下:

访问修饰符

   

public

访问不受限制,可以类内和任何类外的代码中访问

protected

可访问域限定于类内或从该类派生的类内

internal

可访问域限定于类所在的程序内

protected internal

protected或者internal,即可访问域限定于类所在的程序或那些由它所属的类派生的类内

private

可访问域限定于它所属的类内

现在做解释首先,public不做介绍,
接下来是protected,
protected就只能被子类内部所访问(不管这个子类在哪个项目里)
如果在同一程序集里面,不是子类的话,仅仅实例化该类,其中的protected所修饰的成员就不能被访问

这是在一个项目中,如果再加一个项目

一样的道理!

private也很简单,只能在定义的类内部使用,别处不管是派生类等都不能使用。

internal和我们解释的类的修饰符一样,只能在一个项目中使用(不管是实例化还是派生均可见),在别的项目中看不到

在一个项目中,大家可以看都均可见,

在另一个项目中我们可以看到只能看到public的属性,internal不见了。

最后我们讲protected internal,看了大家也应该明白
protected internal是protected和interval的集合体,
确切的说应该是一个并集,
意义就是它能被类的子类所访问并且(不管这个子类在哪个程序集里)即protected的实现部分
并且能被同一个程序集的类所访问即internal的实现部分

在一个项目中我们的可见

在另一个项目中引用我们看到的效果,我想这样一对比大家已经有了很清楚的认识了吧。