知识大全 使用构造函数初始化语句

Posted 函数

篇首语:读书是易事,思索是难事,但两者缺一,便全无用处。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 使用构造函数初始化语句相关的知识,希望对你有一定的参考价值。

C#箴言:使用构造函数初始化语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

    在写程序的时候 往往会出现为一个类型提供不同场景的构造函数 可能大多构造函数比较相似 而C#中又不允许缺省参数 因此构造函数的编写无疑是一个重复工作 但是使用Copy和Paste来完成构造函数的编写 有时候很难达到统一 尤其是当成员发生变化的时候 因此比较常见的替换方法就是为构造函数提供一个统一的成员函数来完成初始化工作        例如      public class MyClass       private int _Age;    private string _Name;       public MyClass( string Name)         InitMember( Name );        public MyClass( string Name int Age )         InitMember( Name Age );           /// <summary>    /// Init class members    /// </summary>    /// <param name= Name ></param>    /// <param name= Age ></param>       private void InitMember( string Name int Age )         _Age = Age;     _Name = Name;               不过 在C#中提供了更为简明的方法 就是在构造函数初始化语句中调用另一构造函数 那么上面的形式可以改写为如下这样      public class MyClass       private int _Age;    private string _Name;       public MyClass( string Name):this( Name )           public MyClass( string Name int Age )         _Age = Age;     _Name = Name;               对于这两者来说 执行效率没有太大差别 但从代码质量而言 后者要好很多 而且会使代码看起来更清晰        其次 对于基类的调用 由于成员函数不能调用基类的构造函数 所以对于第一种编写就比较困难 后者就简单多了        例如      public class MyClass:BaseClass       private int _Age;    private string _Name;       public MyClass( string Name):this( Name )           public MyClass( string Name int Age ):base( Name Age )         _Age = Age;     _Name = Name;               这里要提的一点就是构造函数初始化语句 对于 this 或者 base 之类的调用只能有一个 不能并存        最后 就是对于readonly常量的初始化 由于readonly常量只能通过成员初始化语句或者在构造函数中被修改 因此在成员函数中无法修改readonly常量 这也是构造函数初始化语句要比成员函数好的重要一个因素        有了上面的说明 对于两者的对比 可以形成如下这个简单的对比表       效率 代码结构 基类调用 静态成员初始化   构造函数初始化语句 一样 简明清晰 容易 可以   成员函数 比较清晰 比较麻烦 不能       (注 这里不提倡Copy/Paste方法来重复编写构造函数) cha138/Article/program/net/201311/11333

相关参考

知识大全 C++中初始化对象的数据成员必须要用到构造函数吗

C++中初始化对象的数据成员必须要用到构造函数吗?请高手详细解答!谢谢!  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们

知识大全 构造和析构成员函数

    类有一个特殊的成员函数叫做构造成员函数它通常用于初始化类的数据成员在创建对象时会自动调用类的构造成员函数Java中的构造成员函数必须与该类具有相同的名字另外构造成员函数一般都应用public类

知识大全 C#默认构造函数的作用

C#默认构造函数的作用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  构造函数主要用来初始化对象

知识大全 在aspx页面中事件的执行顺序[1]

   一详细版  初始化  当页面被提交请求第一个方法永远是构造函数您可以在构造函数里面初始一些自定义属性或对象不过这时候因为页面还没有被完全初始化所以多少会有些限制特别地您需要使用Http

知识大全 .net编程之路(四)

  现在我们来看看这段代码  如果创建这样的一个实例carMyCar=newcar(mazida)  那么这个实例调用的构造函数是初始化器转向执行带两个参数的构造函数  只读字段  readonly字

知识大全 数据结构概论之算法的描述和分析[2]

  循环语句    WHILE(条件)    语句    DO     语句    WHILE(条件)    FOR(初始条件;终结条件;语句)     语句  函数    所有算法以如下函数形式表示

知识大全 privte的析构函数和构造函数

  C++中是不允许virtual构造函数的如果在构造函数前加virtual  以vc为例编译器报错为inlineistheonlylegalstorageclassforconstructors  

知识大全 oracle构造添加字段的SQL语句

oracle构造添加字段的SQL语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用ORACL

知识大全 JS特殊函数(Function()构造函数、函数直接量)区别

JS特殊函数(Function()构造函数、函数直接量)区别  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看

知识大全 编写类String 的构造函数、析构函数和赋值函数

编写类String的构造函数、析构函数和赋值函数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!已知