【发布时间】:2014-08-19 17:15:49
【问题描述】:
我正在创建一个表单来管理我的应用程序的报告,其想法是每个报告表单都继承自这个基本表单。我的问题是它包含必须分配的几个属性,如果我已经调用了 all,我需要在每个子表单上进行验证,所以......我想知道是否有一种方法可以自动调用所有这些属性.
这是控制器代码的一部分:
public abstract partial class ReportsController()
{
public string Table{ get; set; }
public string Fields{ get; set; }
public string Condition{ get; set; }
public string Group{ get; set; }
public string Order{ get; set; }
public DataGridViewColumnCollection Columns{ get; set; }
public SortedList<string, string> ComboboxFields{ get; set; }
etc...
protected abstract void New();
protected abstract void Edit();
protected abstract void Print();
}
如您所见,方法不是问题,它们是抽象的,因此必须声明它们(感谢 Resharper,如果我错过了,我会收到警告)。
子窗体:
public partial class frmReportGuards : ReportsController
{
public frmReportGuards()
{
code...
}
protected override void New()
{
code...
}
other methods...
}
我正在寻找这个:
public partial class frmReportGuards : ReportsController
{
public frmReportGuards()
{
//Auto assigned properties.
Table = "";
Fields = "";
Condition = "";
Group = "";
Order = "";
Columns = new DataGridViewColumnCollection();
ComboboxFields = new SortedList<string, string>();
}
protected override void New()
{
code...
}
other methods...
}
我不知道我是否在这里毫无意义:/ 我真的需要摆脱这种怀疑,如果可能的话......然后简化我的工作。
【问题讨论】:
-
为什么不向 ReportsController 添加构造函数并在那里设置属性?
-
不是关于初始化属性,我想我解释错了,是关于强制子类实现它们。
标签: c# inheritance properties declare