C#常用修饰符
访问修饰符
访问修饰符是一些关键字,用于指定声明的成员或类型的可访问性,C#有4个访问修饰符:public、private、protected、internal,使用这些访问修饰符可以指定以下5个访问级别:
- public: 同一程序集(DLL或EXE)中的任何其他代码或引用该程序集的其他程序集都可以访问该类型或成员。
- private: 只有同一类或结构中的代码可以访问该类型或成员。
- protected: 只有同一类或结构或者此类的派生类中的代码才可以访问该类型或成员。
- internal: 同一程序集中的任何代码都可以访问该类型或成员,但的代码不可以。
- protected internal: 在一程序集中,protected internal体现的是internal的性质;在其他程序集中,protected internal体现的是protected的性质。
一个成员或类型只能有一个访问级别。
类型的可访问性
不嵌套在其他类型中的顶级类型的可访问性只能是internal或public,这些类型的默认可访问性是internal。嵌套类型是其他类型的成员,具有和其它成员一样的可访问性。
class A {} // 默认可访问性是internal
class B
{
class Nested {} // 默认可访问性是private
}
成员的可访问性
| 类型 | 默认的成员可访问性 | 该成员允许声明的可访问性 |
|---|---|---|
| enum | public | 无 |
| class | private | public、private、protected、internal、protected internal |
| interface | public | 无 |
| struct | private | pubic、private、internal |
abstract
使用abstract修饰的类为抽象类,抽象类只能是其他类的基类,不能与sealed、static一起使用。
abstract可以修饰抽象类中的方法或属性,此时,方法或属性不能包含实现,且访问级别不能为私有。
抽象类不能被实例化。
sealed
使用sealed修饰的类为密封类,密封类无法被继承,不能和abstract、static一起使用。
当sealed用于方法或属性时,必须始终与override一起使用。
static
使用static修饰的类为静态类,静态类所有成员都必须是静态的,不能与abstract、sealed一起使用。
static可以修饰方法、字段、属性或事件,始终通过类名而不是实例名称访问静态成员,静态字段只有一个副本。
静态类不能被实例化。
const
使用const关键字来声明某个常量字段或常量局部变量,必须在声明常量时赋初值。
不能与static一起使用,常量默认是static的,常量字段只有一个副本。
readonly
使用readonly关键字来声明只读字段。
只读字段可以在声明或构造函数中初始化,每个类或结构的实例都有一个独立的副本。
可以与static一起使用,声明静态只读字段。
静态只读字段可以在声明或静态构造函数中初始化,静态常量字段只有一个副本。
virtual
virtual关键字用于修饰方法、属性、索引器或事件声明,并使它们可以在派生类中被重写。
默认情况下,方法是非虚拟的。 不能重写非虚方法。
virtual修饰符不能与static、abstract、private或override修饰符一起使用。
override
要扩展或修改继承的方法、属性、索引器或事件的抽象实现或虚实现,必须使用override修饰符。
重写的成员必须是virtual、abstract或override的。
参考资料
1、修饰符
2、可访问级别
C#常用修饰符的更多相关文章
- Vue常用修饰符
Vue提供了事件修饰符用于DOM的事件处理,常用的事件修饰符有以下几个: (1). stop:阻止冒泡(通俗讲就是阻止事件向上级DOM元素传递) 点击内层div的结果: 点击外层div的结果: 修改代 ...
- Java中常用修饰符使用汇总
修饰符汇总: 一:public protected default private 修饰类,修饰方法,修饰属性,修饰代码块. 类: 顶级类只能用public 修饰,顶级类不能使用private 和p ...
- C#中常用修饰符
1.存取修饰符 public:(公有的)存取不受限制 protected:(受保护的)只有包含该成员的类以及派生类可以存取 private:(私有的)只有包含该成员的类可以使用 2.类修饰符 abs ...
- vue2.0 事件处理常用修饰符-----------------记录,加强记忆。
1,<!-- 阻止单击事件继续传播 --> <a v-on:click.stop="doThis"></a> stop修饰符对应的是阻止冒泡的e ...
- C语言常用修饰符
前言 这两天在梳理自己C语言的知识,发现写了这么久的代码,居然所有的知识点都在自己的脑袋里.这可不好,万一老了呢.... 接下来的几天里,会以文字的形式,将这些知识整理出来,分享给大家. 想要看看英文 ...
- Java常用修饰符总结
修饰符是用于限定类型以及类型成员申明的一种符号,可用于修饰类.变量和方法,分为访问修饰符和非访问修饰符.访问修饰符控制访问权限,不同的访问修饰符有不同的权限范围,而非访问修饰符则是提供一些特有功能. ...
- Vue中v-model指令的常用修饰符
v-model指令有三个可以选用的修饰符:.lazy..number以及.trim.vue官方对此的描述为: .number-输入字符串转为有效的数字 .lazy-取代input监听change事件 ...
- Java中常用修饰符浅谈
一.public.protected.default和private修饰符的作用域 public:在java程序中,如果将属性和方法定义为 public 类型,那么此属性和方法所在的类和及其子类,同一 ...
- vue常用的修饰符
v-model修饰符 <template> <div id="demo14"> <p>-----------------模板语法之修饰符---- ...
随机推荐
- WCF路由服务
代码下载: 链接:https://pan.baidu.com/s/1i76Ht0lMWmosaCrDjaA2cA 密码:muj11.新建类库 Service.Interface using Syste ...
- 安装linux子系统, 如何用win10 里面的linux子系统来进行通信
cd /mnt/d/linux_share即可 就把linux_share这个目录挂载到linux里面了.这样windows和linux可以同时修改和访问这个文件夹里面的内容. 安装:cmd中输入ba ...
- pygame小记
pygame.display.set_mode(x, y)设置显示窗口大小pygame.sprite.Sprite方法中有image, rect, speed等参数 其中image 可以通过 pyga ...
- 如何使用putty远程连接linux
如何使用putty远程连接linux | 浏览:5001 | 更新:2013-08-24 10:36 1 2 3 4 5 分步阅读 putty是一款超轻量级的运行在windows操作系统上的用于远程连 ...
- 使用crf++
在example文件夹下存在4个使用crf的实例 1.在命令行执行 进入路径:./example/seg 执行:sh exec.sh 2. 在python中执行 进入路径:./python 执行:(1 ...
- 【Web】Sublime Text 3 连接sftp/ftp(远程服务器)
在 Win 下常用 Xftp 软件来和远程服务传递文件,但是要是在项目开发的时候频繁的将远程文件拖到本地编辑然后再传回远程服务器,那真是麻烦无比,但是Sublime中SFTP插件,它让这世界美好了许多 ...
- get load 代理对象
01使用session中的load方法查询数据库中的记录时,我们返回的是一个代理对象,而不是真正需要的那个对象. 02 因为代理对象的出现 才导致延迟加载. 还有采用懒加载的时候容易出现nosessi ...
- MySQL LOCK TABLES 与UNLOCK TABLES
http://blog.csdn.net/zyz511919766/article/details/16342003 1语法 LOCK TABLES tbl_name[[AS] alias] lock ...
- 2019.01.21 NOIP训练 可持久化序列【模板】(可持久化treap)
传送门 题意简述:支持在把某个数插入到某版本的第k个位置,删除某版本第k个数,询问第k个数. 思路:用可持久化treaptreaptreap维护区间第kkk个位置的数是啥就可以了. 代码
- 2019.01.13 loj#6515. 贪玩蓝月(线段树分治+01背包)
传送门 题意简述:有一个初始为空的双端队列,每次可以在队首和队尾插入或弹出一个二元组(wi,vi)(w_i,v_i)(wi,vi),支持询问从当前队列中选取若干个元素是的他们的和对 MODMODM ...