C#类详解
类:
类是一种数据结构,它可以包含数据成员(常数和字段)、函数成员(方法、属性、事件、索引器、运算符实例、构造函数静态构造函数和析构函数),以及嵌套类型。类类型支持继承,继承是一种机制,它使派生类可以对基类进行扩展和专用化。
1、 类声明:
属性(可选) 类修饰符(可选) class 标示符 类基(可选) 类体(可选);
2、类修饰符:
类声明可以根据需要包括一个类修饰符序列:
class-modifier(类修饰符):
new
public
protected
internal
private
abstract
sealed
new修饰符适用于嵌套类。它表示所修饰的类会把继承下来的同名成员隐藏起来。
3、抽象类:
abstract:修饰符用于表示所修饰的类是不完整的,并且它只能用做基类。抽象类与非抽象类不同点如下:
抽象类不能直接实例化,并且对抽象类使用new运算符会导致编译时错误。虽然一些变量和值在编译时的类型可以是抽象的,但是这样的变量和值必须或者为null,或者含有对非抽象类的实例的引用(此非抽象类是从抽象类派生的)。
允许抽象类包含抽象成员
抽象类不能被密封
4、密封类:
sealed修饰符用于防止从所修饰的类派生出其他类。如果一个密封类被指定为其他类的基类,则会发生编译时错误。
密封类不能同时为抽象类。
sealed修饰符主要用于防止非有意的派生,但是它还能促使某些运行时优化。具体而言,由于密封类永远不会有任何派生类,所以对密封类的实例的虚拟函数成员的调用可以转换为非虚拟调用来处理。
5、基类规范:
类声明可以包含基类规范,它定义该类的直接基类和由该类实现的接口。
class-base:(基类:)
:class-type(:类类型)
:interface-type-list(:接口类型列表)
6、基类:
当类类型包含在类基中时,表示该类就是所声明的类的直接基类。如果类声明中没有基类,或所含有的类基只列出接口类型,就假定直接基类就是object,类会从它的直接基类继承成员。
类类型的直接基类不能是下列类型:System.Array, System.Delegate, System.Enum, System.ValueType。
类的基类包括它的直接基类及该直接基类的基类。
除了类object,每个类有且只有一个直接基类。object类没有任何直接基类,并且是所有其他类的终极基类。
7、接口实现:
类基规范中可以包含接口类型列表,这表示所声明的类实现所列出的各个接口类型。
8、类体:
类体用于定义该类的成员。
class-body:(类体)
{ class-member-declarationsopt }( {类成员声明可选})
9、类成员:
类成员有两部分组成:有它的类成员声明引入的成员;从它的直接基类继承来的成员
class-member-declarations:(类成员声明:)
constant-declaration:(常数声明:)
field-declaration:
method-declaration:
property-declaration:
event-declaration:
indexer-declaration:
operator-declaration:
constructor-declaration:
destructor-declaration:
static-constructor-declaration:
type-declaration:
C#类详解的更多相关文章
- java之StringBuffer类详解
StringBuffer 线程安全的可变字符序列. StringBuffer源码分析(JDK1.6): public final class StringBuffer extends Abstract ...
- java之AbstractStringBuilder类详解
目录 AbstractStringBuilder类 字段 构造器 方法 public abstract String toString() 扩充容量 void expandCapacity(in ...
- java之StringBuilder类详解
StringBuilder 非线程安全的可变字符序列 .该类被设计用作StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍).如果可能,建议优先采用该类,因为在 ...
- Java String类详解
Java String类详解 Java字符串类(java.lang.String)是Java中使用最多的类,也是最为特殊的一个类,很多时候,我们对它既熟悉又陌生. 类结构: public final ...
- QAction类详解:
先贴一段描述:Qt文档原文: Detailed Description The QAction class provides an abstract user interface action tha ...
- JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表
一.struts2是什么 1.概念 2.struts2使用优势以及历史 二.搭建struts2框架 1.导包 (解压缩)struts2-blank.war就会看到 2.书写Action类 public ...
- Struts2-整理笔记(二)常量配置、动态方法调用、Action类详解
1.修改struts2常量配置(3种) 第一种 在str/struts.xml中添加constant标签 <struts> <!-- 如果使用使用动态方法调用和include冲突 - ...
- C# 内置 DateTime类详解
C# 内置 DateTime类详解 摘抄自微软官方文档,用来方便自己查阅:网址:https://msdn.microsoft.com/zh-cn/library/system.datetime(v=v ...
- Android游戏开发之旅 View类详解
Android游戏开发之旅 View类详解 自定义 View的常用方法: onFinishInflate() 当View中所有的子控件 均被映射成xml后触发 onMeasure(int, int) ...
- Java 枚举类详解
1. 枚举类定义 在某些情况下,一个类的对象是有限而且固定的,比如季节类,它只有4个对象,这种实例有限而且固定的类,在Java里被称为枚举类. 2. 早期实现枚举的方式 public static f ...
随机推荐
- 如何获得keyhash
keyhash是由keystore产生的 三个命令解决问题 keytool -exportcert -alias androiddebugkey -keystore debug.keystore &g ...
- graphical Layout调大一点
布局最右边的放大器按钮好难找啊
- java细节,细的你想象不到
一. 构造方法每次都是构造出新的对象,不存在多个线程同时读写同一对象中的属性的问题,所以不需要同步 . 如果父类中的某个方法使用了 synchronized关键字,而子类中也覆盖了这个方法,默认情况下 ...
- Python装饰器学习(九步入门)
这是在Python学习小组上介绍的内容,现学现卖.多练习是好的学习方式. 第一步:最简单的函数,准备附加额外功能 ? 1 2 3 4 5 6 7 8 # -*- coding:gbk -*- '''示 ...
- 样式(Style)和主题(Theme)资源——样式资源
样式和主题资源都是用于对Android应用进行“美化”的,只要充分利用Android应用的样式和主题资源,开发者可以开发出各种风格的Android应用. 样式资源: 如果我们经常需要对 ...
- 使用(Drawable)资源———ShapeDrawable资源
ShapeDrawable用于定义一个基本的几何图形(如矩形.圆形.线条等),定义ShapeDrawable的XML文件的根元素是<shape.../>元素,该元素可指定如下属性. and ...
- Spring的IOC原理[通俗解释一下]
Spring的IOC原理[通俗解释一下] 1. IoC理论的背景我们都知道,在采用面向对象方法设计的软件系统中,它的底层实现都是由N个对象组成的,所有的对象通过彼此的合作,最终实现系统的业务逻辑. 图 ...
- leetcode难度及面试频率
转载自:LeetCode Question Difficulty Distribution 1 Two Sum 2 5 array sort set ...
- 用Zephir编写PHP扩展
自从NodeJS,和Golang出来后,很多人都投奔过去了.不为什么,冲着那牛X的性能.那PHP的性能什么时候能提升一下呢?要不然就会被人鄙视了.其实大牛们也深刻体会到了这些威胁,于是都在秘密开发各种 ...
- 搭建spring工程配置数据源连接池
Spring作为一个优秀的开源框架,越来越为大家所熟知,前段时间用搭了个spring工程来管理数据库连接池,没有借助Eclipse纯手工搭建,网上此类文章不多,这里给大家分享一下,也作为一个手记. 工 ...