用实体列表做数据源的话如果存在继承关系会出错吗?

想利用子类覆盖父类属性 但是绑定的时候会报错 datagrid的数据源只能是同一个类型吗

protected void Button1_OnClick(object sender, EventArgs e) { List<a> list=new List<a>(); list.Add(new a("b"));//这样不会报错 list.Add(new b("c")); //如果ab顺序对调 活着一个b 一个c就会报错 GridView1.DataSource = list; GridView1.DataBind(); } public class a { public a() { } public a(string a) { this.aa = a; } public virtual string aa { get; set; } } public class b : a { public b(string aa) { this.aa = aa; } public override string aa { get { return base.aa; } set { base.aa = value; } } } public class c : a { public c(string aa) { this.aa = aa; } public override string aa { get { return base.aa; } set { base.aa = value; } } }

慕盖茨4494581
浏览 459回答 2
2回答

Helenr

试了下你的代码, 并不会报错、你说的两种情况都试过的。你看看是不是别的地方引起的, 或者把错误贴上来。

紫衣仙女

最好贴出代码来看一下,理论上应该不会出错。
打开App,查看更多内容
随时随地看视频慕课网APP