c# - 重载构造函数和重用代码

标签 c# oop constructor

假设我有一个对象 Customer,它有几个属性(IDFirstNameLastName ).我有默认的构造函数 Customer(),但是我也有一个 Customer(DataRow dr),因为我从数据库加载这个对象,这是一个简单的方法。

我经常遇到要设置另一个构造函数 Customer(int ID) 的情况,有时我想加载一个 Customer 但我还没有' 完成了对数据库的访问。对我来说最简单的方法似乎是这样的:

Customer(int ID)
{
    DataTable dt = DataAccess.GetCustomer(ID);
    if (dt.Rows.Count > 0)
    {
        // pass control to the DataRow constructor at this point?
    }
    else
    {
        // pass control to the default constructor at this point?
    }   
}

重用 DataRow 构造函数中已有的代码是有意义的,但我想不出一种方法来调用它并返回它给我的内容。通过谷歌搜索,我找到了有关使用 : this() 语法重载构造函数的信息,但所有这些示例似乎都是向后的或与我正在尝试做的不兼容。

所以我对构造函数的理解存在差距,但我似乎无法理清。我错过了什么?

最佳答案

最简单的解决方案似乎是:构造另一个函数来完成您想要完成的工作,并让两个构造函数都调用该函数。

关于c# - 重载构造函数和重用代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/383347/

相关文章:

oop - 如何将对象从其基类转换为子类

javascript - 为什么是 Function.prototype.bind.apply?

c# - 如何将 Console.WriteLine 输出保存到文本文件

c# - 删除换行符不起作用

javascript - 如何快速轻松地在 JS 文件中查找函数/运算符/方法

C++ 构造函数隐式成员

C++ - 全局静态对象和局部静态对象的构造函数调用是否不同?

c# - 通用小数不能从 double 转换

c# - 堆中的 DLL 内存泄漏

c++ - 如何使用 C++ 上的引用删除对象