C#构造函数参数传递
我目前重构我的程序更加面向对象,我遇到了我的对象的构造函数。
所有对象都存储在一个必须是人类可读的数据库中,所以我认为程序员直接传递一个对象的构造函数或者对象将自己获取值是很好的。
所以,我想要做的是:
public TestObject(Data.MyDataTable table) { // Some checks if the table is valid TestObject(table[0]); } public TestObject(Data.MyDataRow row) { // Some checks if the row is valid TestObject(row.Name, row.Value); } public TestObject(String name, String value) { // Some checks if the strings are valid _name = name; _value = value; }
所以,正如你所看到的,我想要一种“构造函数链”,根据程序员调用它的方式,值将在每一步中传递并validation。 我按照我写的方式尝试了它,但它没有用。
Error 'TestObject' is a 'type' but is used like a 'variable'
我也试过写this.TestObject(...)
但没有变化。
Error 'TestObject' does not contain a definition for 'TestObject' and no extension method 'TestObject' accepting a first argument of type 'TestObject' could be found
我怎么能这样做?
构造函数链接的工作原理如下:
public TestObject(Data.MyDataTable table) : this(table[0]) { } public TestObject(Data.MyDataRow row) : this(row.Name, row.Value) { } public TestObject(String name, String value) { // Some checks if the strings are valid _name = name; _value = value; }
你链接这样的构造函数 :
public TestObject(Data.MyDataTable table) : this(table[0]) { } public TestObject(Data.MyDataRow row) : this(row.Name, row.Value) { } public TestObject(String name, String value) { // Some checks if the strings are valid _name = name; _value = value; }
注意:使用this
关键字来指示当前对象,使用传递给一个构造函数的参数到链式构造函数。