C#修饰符详解+
来源:互联网 发布:管理学网络计划图例题 编辑:程序博客网 时间:2024/05/21 07:53
什么是修饰符?
修饰符是用于限定类型以及类型成员的申明的一种符号。
访问修饰符有哪些?
4个访问修饰符(是添加到类、结构或成员声明的关键字)
Public:公有的,是类型和类型成员的访问修饰符。对其访问没有限制。
Internal:内部的,是类型和类型成员的访问修饰符。同一个程序集中的所有类都可以访问
Private:私有的,是一个成员访问修饰符。只有在声明它们的类和结构中才可以访问。
Protected::受保护的,是一个成员访问修饰符。只能在它的类和它的派生类中访问。
protected internal:访问仅限于当前程序集或从包含类派生的类型。
(在这里同一个程序集是指同一个.cs文件,不同的.cs文件的命名空间省略)
类修饰符
Static: 声明属于类型本身而不是属于特定对象的成员。
Abstract:抽象类,只能是其他类的基类。类中的方法只声明不实现,方法的实现在他的派生类中完成。
Sealed:指定类不能被继承。
成员修饰符
Partial:在整个同一程序集中定义分部类和结构,详解见问题1。
Virtual:用于修饰方法、属性、索引器或事件声明,并且允许在派生类中重写这些对象
Override:提供从基类继承的成员的新实现
New:作修饰符,隐藏从基类成员继承的成员,在不使用 new 修饰符的情况下隐藏成员是允许的,但会生成警告。作运算符,用于创建对象和调用构造函数。
Extern:用于声明在外部实现的方法。 extern 修饰符的常见用法是在使
常见成员类型的访问修饰符?
(1)接口(interface)
接口成员访问修饰符默认为public,且不能显示使用访问修饰符。
(2)类(class)
构造函数默认为public访问修饰符。
析构函数不能显示使用访问修饰符且默认为private访问修饰符。
类的成员默认访问修饰符为private;
(3)枚举(enum)
枚举类型成员默认为public访问修饰符,且不能显示使用修饰符。
(4)结构(struct)
结构成员默认为private修饰符。
结构成员无法声明为protected成员,因为结构不支持继承。
(5)嵌套类型
嵌套类型的默认访问修饰符为private。和类,结构的成员默认访问类型一致。
访问修饰符有哪些需要注意?
·一个成员或类型只能有一个访问修饰符,使用 protected internal组合时除外。
·如果在成员声明中未指定访问修饰符,则使用默认的可访问性
·Virtual,override和new 的区别
1. virtual和override配套使用。在基类base中声明了虚方法method()并用virtual修饰,在子类derived中重写方法method()并用override修饰。那么当将子类的实例赋予基类的对象(不需要强制转换)时即BaseBclass= new Derived();Bclass.Method()是调用了子类的method()方法,而不是基类的。所以
2. new不需要和virtual配套使用。在基类base中声明了方法method(),在子类derived中声明了同名的方法method()并用new修饰。那么当将子类的实例赋予基类的对象时即BaseBclass= new Derived();Bclass.Method()是调用了基类类的method()方法,而不是子类的。
3. 这说明,override可以覆盖基类的方法,让基类的方法以子类的内容实现,而new不用来覆盖基类的方法,而是全新定义一个子类的方法,这个方法只属于子类,与基类的方法无关,只是名字上相同而已.
类型成员默认的可访问性
属于
默认的成员可访问性
该成员允许的声明的可访问性
enum
public
无
class
private
public
protected
internal
private
protected internal
interface
public
无
struct
private
public
internal
private
参考:
https://msdn.microsoft.com/zh-cn/library/wxh6fsc7.aspx
http://blog.csdn.net/susan19890313/article/details/7575228
- C#修饰符详解
- C#修饰符详解
- C#修饰符详解+
- C#的方法的参数修饰符详解
- c#中4个访问修饰符和8个声明修饰符详解
- c#中4个访问修饰符和8个声明修饰符详解
- C#修饰符总结
- C# 修饰符
- c# 修饰符总结
- C#中的修饰符
- c#修饰符
- C#访问修饰符
- c#访问修饰符
- c#访问修饰符
- c#修饰符
- C#修饰符
- C#访问修饰符
- c#修饰符
- 数据库知识点
- python: 自动去除空行
- Java类加载器
- QT4 编译错误 error: collect2: ld returned 1 exit status
- (4)Zookeeper 3.4.9安装部署---Standalone模式
- C#修饰符详解+
- Python lambda介绍
- select表单序列化serialize()出现问题
- Learning PostgreSQL.pdf 英文原版 免费下载
- tensorflow 卷积神经网络实现CIFAR-10数据集识别
- ACM训练半周总结—12月7日
- OpenAI探索机器人模拟训练新方法:仿真与真实世界无缝衔接
- use a circular buffer for video frames on iOS
- 深入理解Android音视频同步机制(二)ExoPlayer的avsync逻辑