C#中基类属性值在子类中设置,如何在基类的方法中获取子类设置的值?

如BaseListForm有Protected属性TableName,子类ListForm继承BaseListForm,在子类中设置TableName为Color,那么在... 如BaseListForm有Protected属性TableName,子类ListForm继承BaseListForm,在子类中设置TableName为Color,那么在父类的构造函数中如何取得TableName的值? 展开
 我来答
草薙在
推荐于2018-04-05 · TA获得超过4795个赞
知道大有可为答主
回答量:6187
采纳率:50%
帮助的人:6243万
展开全部
从设计角度上来说,一般父类不应该访问子类成员,否则这种抽象结构就是没有意义的,当然你也可以访问,直接把this转换成子类类型就可以访问了
追问
不是访问子类成员,该成员是父类的,只不过是在子类中赋值,而我想在父类中获取子类所赋的值。
追答
那你直接访问父类的属性就可以获得了,如果你的子类属性是new出来的而不是virtual、abstract或者接口成员,那就是新的属性,只能强制转换来获取
CloudPRose
2012-08-02 · TA获得超过5175个赞
知道大有可为答主
回答量:3175
采纳率:66%
帮助的人:854万
展开全部
作为子类来说,构造函数ListForm() : base()的调用顺序是先父类后子类。所以子类中设置肯定是滞后的。除非有一个构造函数是带参数的:
BaseListForm(string tableName) { this.TableName = tableName; }
ListForm(string tableName) : base(tableName) { ... }
new ListForm("Color");
ps. 从命名规范上来说,ListFormBase要比BaseListForm规范。除非你是BasicListForm。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式