假设我有一个对象 Customer
,它有几个属性(ID
、FirstName
、LastName
).我有默认的构造函数 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/