实例构造器和类(引用类型)
构造器(constructor)是允许将类型的实例初始化为良好状态的一种特殊方法。 创建一个引用类型的实例时,首先为实例的数据字段分配内存,然后初始化对象的附加字段(类型对象指针和同步索引块),最后调用类型的实例构造器来设置对象的初始状态。 和其他方法不同,实例构造器永远不能被继承。
类的实例构造器在访问从基类继承的任何字段之前,必须先调用基类的构造器。如果派生类的构造器没有显式的调用一个基类构造器,C#编译器会自动生成对默认的基类构造器的调用。
internal sealed class SomeType{
private Int32 m_x=5;
private String m_s="Hello";
private Double m_d=3.14159;
private Byte m_b;
//以下是一些构造函数
public SomeType() {...}
public SomeType(Int32 x) {...}
public SomeType(String s){...;m_d=10;}
}
编译器为这三个构造器方法生成代码时,在每个方法的开始位置,都会包含用于初始化m_x,m_s,m_d的代码。在这些初始化代码之后,编译器会插入对基类构造器的调用。再然后,会插入构造器自己的代码。例如,对于获取一个String参数的构造器,编译器生成的代码首先初始化m_x,m_s,m_d,再调用基类Object的构造器,再执行自己的代码,最后用值10覆盖m_d原先的值。注意,即使没有代码显式初始化m_b,m_b也保证会被初始化为0。
实例构造器和结构(值类型)
CLR总是允许创建值类型的实例,并且没有办法阻止值类型的实例化。值类型并不需要定义构造器,C#编译器根本不会为值类型生成默认的无参构造器(事实上,C#编译器根本不允许为值类型定义无参构造器)。
值类型的实例构造器只有在显式调用时才会执行。
类型构造器(静态构造器)
类型构造器的作用是设置类型的初始状态。类型默认没有定义类型构造器,如果定义,也只能定义一个。此外,类型构造器永远没有参数。 C#会自动把它们标记为private,这是为了阻止任何开发人员写的代码调用它,对它的调用总是由CLR负责的。 类型构造器中的代码只能访问类型的静态字段,并且它的常规用途就是初始化这些字段。
http://blog.csdn.net/kendezhu/article/details/4915129(操作符重载方法 转换操作符重载方法)
操作符重载方法
C#中允许一个类型定义操作符该如何操作该类型的实例。CLR对操作符重载一无所知,是编程语言定义了每个操作符的含义,以及当这些特殊符号出现时应该生成什么样的代码。例如,向基元类型的数字应用+时,编译器会生成将两个数加在一起的代码,而向String应用+时,编译器会生成将连个字符串连接到一起的代码。
CLR规范要求操作符重载方法必须是public和static方法,要求重载方法至少有一个参数的类型与当前定义该重载方法的类型相同(为了使编译器在合理的时间内找到要绑定的操作符方法)
转换操作符重载方法
CLR规范要求转换操作符重载方法必须是public和static方法,要求重载方法的参数类型和返回类型必有其一与定义该方法的类型相同(为了使编译器在合理的时间内找到要绑定的操作符方法)
分部类,分部方法
一个源代码文件如下:
internal sealed partial class Base{
private String m_name;
partial void OnNameChanging(String value); //分部方法的声明
}
另一个源代码文件如下:
internal sealed partial class Base{
partial void OnNameChanging(String value){ //分部方法的实现
if(String.IsNullOrEmpty(value))
throw new ArgumentNullException("value");
}
}
分部方法的声明,要用partial关键字标记,无主体。
分部方法的实现,要用partial关键字标记,有主体。
如果没有实现分部方法,编译器不会生成任何代表分部方法的元数据。编译器不会生成任何调用分部方法的IL指令。
分部方法只能在分部类或结构中声明。
分部方法的返回类型始终是void,任何参数都不能用out修饰符来标记。
分部方法总是被视为private方法。
分享到:
相关推荐
数据安全治理能力评估方法数据安全治理能力评估方法数据安全治理能力评估方法数据安全治理能力评估方法数据安全治理能力评估方法数据安全治理能力评估方法数据安全治理能力评估方法数据安全治理能力评估方法数据安全...
VM0001 红外自动制冷剂泄漏检测效率项目方法,v1.1 VM0002 新的热电联产设施向电网和/或热水向一个或多个电网客户供应低碳密集型电力,v1.0 VM0003 通过延长轮伐期改进森林管理的方法,v1.2 VM0004 避免泥炭沼泽森林...
### 预测理论与方法的关键知识点 #### 一、预测的基本概念与重要性 **预测**是指在现有的知识和技术的基础上,对未来的某些情况或事件的发展趋势进行预先判断和估计的过程。这一概念涵盖了多方面的含义,包括预见...
我们知道Android卡顿主要是主线程中有耗时操作导致的,那么我们怎么能方便快捷的获取主线程中的所有耗时方法执行时间呢?今天我们来介绍两个方案 方案一:利用Looper.java中loop()方法的logging.print的特殊关键字...
最优化方法是数学和计算机科学领域的一个重要分支,它研究如何在给定的条件下找到最佳解,例如最小化或最大化某个目标函数。这个主题广泛应用于工程设计、经济规划、数据分析等多个领域。根据提供的标题和描述,我们...
Java反射是Java语言提供的一种强大的动态类型特性,它允许程序在运行时检查类、接口、字段和方法的信息,并且能够动态地创建对象和调用方法。这个能力使得开发者可以突破静态类型的束缚,实现一些在编译时期无法完成...
本文实例讲述了C#定时器实现自动执行的方法。分享给大家供大家参考。具体实现方法如下: 代码如下: //下面讲一个打开窗体定时执行按钮的东西 private void Form1_Load(object sender, EventArgs e) { System.Timers...
在工程应用中往往需要对N维一阶状态微分方程求解,有些方程为刚性方程,则需要隐式方法,有些方程需要变步长进行求解等。为了解决上面的需求,我对各种龙格库塔方法进行了搜集整理。满足了不同情况的需求。对N维一阶...
在哈工大的计算方法实验中,学生将深入学习并实践一系列关键的数值分析技术,这些技术在解决实际问题时有着广泛的应用。以下是针对实验中涉及的几个重要知识点的详细解释: 1. **Lagrange插值法**:Lagrange插值是...
标题"JS调用C#后台方法"描述了这种跨语言通信的需求。本文将深入探讨如何使用JavaScript调用C#编写的后台方法,并介绍相关技术与实践。 首先,JavaScript作为客户端脚本语言,运行在用户的浏览器上,而C#通常是...
数值计算方法是计算机科学与工程领域中的重要学科,它研究如何用近似方法解决数学问题,特别是在实际计算中无法得到精确解的情况下。本资源“数值计算方法答案 1-7章”由曾金平主编,出版于湖南大学出版社,提供了前...
动态子结构方法是解决复杂工程结构动态分析的一种高效手段,特别是在处理大型结构振动问题时。这类方法通过对结构进行子结构划分,可以显著减少计算量和复杂度,便于处理大规模的结构系统。 结构振动学的基本原理...
雨量预报方法的评价 Matlab 代码 本文旨在评价雨量预报方法的 Matlab 代码,该方法对农业生产和城市生活和工作有重要作用。通过建立数学模型来评价雨量预报方法的准确性,需要对雨量数据进行插值拟合、统计分析和...
《计算方法》是数学与计算机科学领域的一门重要课程,主要研究如何利用数值计算方法解决实际问题。李桂成编著的《计算方法》是一本深入浅出的教材,涵盖了广泛的计算理论和技术。该压缩包包含的习题解答文档,为学习...
"软件测试方法和技术.zip"这个压缩包很可能包含了一系列关于软件测试的详细资料,涵盖了多种测试方法和技术。以下是对这些关键概念的深入解释。 1. **黑盒测试**:这是一种不考虑内部结构或工作原理,仅关注软件...
《李政道 数学物理方法》作为一本专业书籍,主要探讨了数学物理领域的基本理论和方法,涵盖了矢量与张量分析、张量代数、希尔伯特空间、复变函数论等重要概念。书中不仅讨论了这些概念的定义和性质,还深入探讨了...
《数值方法(MATLAB版)第四版》是针对科学计算领域的一本重要教材,由电子工业出版社出版,提供了中文版和英文原版两种选择。本书深入浅出地讲解了数值计算的基本理论和实用技巧,结合强大的MATLAB软件,使得学习者...
复化梯形方法;2.复化辛甫森方法;3.复化高斯方法,求解第二类Fredholm积分方程 高维积分数值计算的蒙特卡罗方法,分别用积分和测度两种不同角度,通过蒙特卡罗方法求冰激凌的体积 病态的线性方程组的求解,选择病态...
西电工程优化-陈开周《最优化计算方法》历年原题以及PPT课件等还有课后题答案 西电工程优化-陈开周《最优化计算方法》历年原题以及PPT课件等还有课后题答案 西电工程优化-陈开周《最优化计算方法》历年原题以及PPT...
《系统交易方法》是波涛先生撰写的一本深入探讨金融市场交易策略的专业书籍,对于投资者,尤其是股票交易者来说,是一本极具价值的参考资料。书中详细阐述了如何构建、验证和实施一套有效的系统交易方法,旨在帮助...