如何从c#中的构造函数调用不同的构造函数
本文关键字:函数调用 构造函数 | 更新日期: 2023-09-27 18:00:02
我有以下类
public class ReportDataSource : IReportDataSource
{
public string Name { get; set; }
public string Alias { get; set; }
public string Schema { get; set; }
public string Server { get; set; }
public ReportDataSource()
{
}
public ReportDataSource(ReportObject obj)
{
this.Name = obj.Name;
this.Alias = obj.Alias;
this.Schema = obj.Schema;
this.Server = obj.Server;
}
public ReportDataSource(ReportObject obj, string alias)
{
this.Name = obj.Name;
this.Schema = obj.Schema;
this.Server = obj.Server;
this.Alias = alias;
}
}
在构造函数中,ReportDataSource(ReportObject obj, string alias)
的行为与ReportDataSource(ReportObject obj)
完全相同。唯一不同的是,我可以覆盖alias
属性。
有没有一种方法可以从ReportDataSource(ReportObject obj, string alias)
内部调用ReportDataSource(ReportObject obj)
,这样我就不必重复我的代码了?
我试过这个
public ReportDataSource(ReportObject obj, string alias)
:base(obj)
{
this.Alias = alias;
}
但是我收到这个错误
"object"不包含接受1个参数的构造函数
如何在c#中的构造函数中调用与with不同的构造函数?
尝试this
:
public ReportDataSource(ReportObject obj, string alias)
:this(obj)
{
this.Alias = alias;
}
它有时被称为构造函数链接。
形式为this(参数列表opt)的实例构造函数初始值设定项导致调用类本身的实例构造函数。构造函数是使用参数列表和§7.5.3的过载解决规则选择的。