接上一篇.net框架读书笔记---通用对象操作(三),开始学习类型以及每个类型的所有实例都具有的一组通用操作。

一、类型成员

一个类型可以定义零个或多个以下成员

  • 常数,常数是一个表示恒定不变的数值的符号,常数总是和类型而非它们的实例相关联,从这个意义上说,它们总是静态的。
  • 字段,字段表示一个数据的值,它或者是只读的,可读可写的。字段范围静态字段和非静态字段,静态字段被视为类型状态的一部分,实例字段被视为对象状态的一部分,建议将字段设置为私有。
  • 实例构造器,实例构造器是一种特殊的方法,它用来将一个新对象的实例字段初始化到正常的初始状态。
  • 类型构造器,类型构造器也是一种特殊的方法,它用来将一个类型的静态字段初始化到正常的初始状态。
  • 方法,方法是一个函数,用来改变或查询一个类型(就静态方法而言),或者一个对象(就实例方法而言)的状态,方法一般需要读写类型或者对象的字段。
  • 重载操作符,同样也是一个方法,它用操作符的形式定义了怎样对对象进行某种操作。
  • 转换操作符,也是一种方法,它定义了怎样将一个对象从一种类型转换到另一种类型。
  • 属性,属性仍是一种方法,它以一种简单的,类似字段的方式实现了设置、或者查询一个对象的状态或类型。
  • 事件(.net框架读书笔记---事件(一) ),分为静态事件和实例事件,静态事件通过类型发送通知,通知的接收者可以是一个类型,也可以是一个对象,实例事件通过对象发送通知,通知的接收者可以是一个类型,也可以是一个对象,事件采用委托(.net框架读书笔记---委托(一))字段来维护登记该事件的侦听着集合。
  • 类型,类型内部可以嵌套定义其他类型。

下面代码展示了上面的类型

代码

class SomeType
{
//嵌套类
class SomeNestedType { }

//常数。只读字段、静态读写字段
const int someConstant = 1;
readonly int someReadOnlyField = 2;
static int someReadWriteField = 3;

//类型构造器
static SomeType() { }

//实例构造器
public SomeType() { }
public SomeType(int x) { }

//实例方法
string InstanceMethod()
{
return null;
}

//静态方法
static void Main() { }

//实例属性
int SomeProp
{
get
{
return 0;
}
set
{
//...
}
}

//实例索引器属性
public int this[string s]
{
get
{
return 0;
}
set
{
//...
}
}

//实例事件
event EventHandler SomeEvent;
}

不管使用何种编程语言,编译器总是要先对我们的源代码进行处理,然后为每一种成员产生相关的元数据,并为其中的方法成员产生IL代码。元数据的格式和编程语言没有关系,这使得CLR成为名副其实的“通用语言运行时”。元数据信息对于所有语言都是通用的,这使得一门编程语言可以无缝的访问另一门语言编写的代码。

.net框架读书笔记---类型成员及其访问限定(一)相关推荐

  1. .net框架读书笔记---基础类型

    接上一篇.net框架读书笔记---值类型的装箱与拆箱, 一.Object CLR要求每个类型都最终集成自System.Object类型,这意味着以下两种定义是相同的: //隐式继承自Object cl ...

  2. .net框架读书笔记---引用参数(ref/out)

    接上一篇.net框架读书笔记---方法(类型造器) 默认情况下,CLR假设所有的方法参数都是按值传递参数的.当参数为引用类型的对象时,参数的传递是通过传递对象的引用(或)指针来完成的.这意味着方法可以 ...

  3. .net框架读书笔记---通用对象操作(一)

    接上一篇.net框架读书笔记---基础类型,这节主要学习这样正确实现所有对象都必须提供的一组通用操作---对象的等值性和唯一性: System.Object类型提供了一个名为Equals的虚方法,其目 ...

  4. 【转】.net框架读书笔记---CLR内存管理\垃圾收集(三)

    接上一篇.net框架读书笔记---CLR内存管理\垃圾收集(二),主要学习了终止化对象(实现了Finalize方法的对象),了解了终止化对象的弊端,学习了通过实现IDisposable接口,通过Dis ...

  5. 【转】.net框架读书笔记---CLR内存管理\垃圾收集(四)

    弱引用 当一个根指向一个对象时,该对象不可能被垃圾收集器收集,在这种情况下,通常说存在一个该对象的强引用(strong reference).垃圾收集器还支持弱引用(weak reference)的概 ...

  6. .net框架读书笔记---虚方法

    接上一篇.net框架读书笔记---引用参数(ref/out), 一.虚方法调用机理 代码 namespace VirtualFunction { class Program { static void ...

  7. .net框架读书笔记---.net文本处理(字符)

    接上一篇.net框架读书笔记---属性.索引器,接下来继续开始学习.net框架中的文本处理. 一.字符 在.NET中,字符采用16位Unicode编码,一个字符有一个System.Char结构(值类型 ...

  8. (转)Tensorflow 实战Google深度学习框架 读书笔记

    本文大致脉络: 读书笔记的自我说明 对读书笔记的摘要 具体章节的摘要: 第一章 深度学习简介 第二章 TensorFlow环境搭建 第三章 TensorFlow入门 第四章 深层神经网络 第五章 MN ...

  9. 【转】.net框架读书笔记---CLR内存管理\垃圾收集(一)

    一.垃圾收集平台基本原理解析 在C#中程序访问一个资源需要以下步骤: 调用中间语言(IL)中的newobj指令,为表示某个特定资源的类型实例分配一定的内存空间. 初始化上一步所得的内存,设置资源的初始 ...

最新文章

  1. 用GDB调试程序(二)
  2. hdu 1026 bfs+记录路径
  3. 未来一瞥:机器人码农
  4. 九度 1479:移位和旋转
  5. caffe安装篇(一)
  6. Linux substring if
  7. Glide 4.x之请求网络图片数据流程解析
  8. gitlab查看word文档_gitlab迁移
  9. 21世纪最需要的7种人才
  10. 基于51单片机智能交通灯电路方案设计
  11. linux、docker容器缺少tailf命令,解决方案。
  12. access考试素材_access数据库考试试题及答案.doc
  13. IDEA添加Mapper.xml文件模板
  14. Java带有效期的Map
  15. 10.5 欧拉通路与哈密顿通路
  16. C# 使用斑马打印机打印图片
  17. Qt中系统屏幕键盘打开与关闭
  18. Qt系列文章之 QMessageBox
  19. 数电篮球电子计分器设计
  20. Mac双系统Win10系统安装MySQL的坑

热门文章

  1. eyoucms问答 百度权重是什么
  2. 首次!海豚间像人类一样的交谈被水下麦克风记录
  3. Easy Problem 3 求长方形的面积
  4. html / css学习笔记-1
  5. MySQLdb的安装
  6. eval、json.parse()的介绍和使用注意点
  7. Android 安全提示 笔记
  8. Mathematics for Computer Graphics
  9. 模拟器显示屏上方的信号和电池图标不显示设置
  10. 公司要禁止QQ?【我们从协议开始分析】