2
System.Web.UI.WebControls.UI.TableHeaderCell

源自于

System.Web.UI.WebControls.UI.TableCell

所以一个带有签名的方法foo(TableCell tc){}

将接受 TableHeaderCell 的实例。

但是,如果我创建两个新类并从中派生一个,TableCell另一个派生自另一个,TableHeaderCell那么我的新 TableHeaderCell 类显然将无法转换为我的新 TableCell 类,因为它们没有直接关系。

有没有办法解决这个问题?我猜没有。

4

2 回答 2

3

你的意思是这样的等级制度?

                  TableCell
                 /         \
                /           \
        TableHeaderCell   CustomTableCell
              /
             /                
  CustomTableHeaderCell

不,在这种情况下,您无法CustomTableHeaderCell转换为CustomTableCell.

你确定在这种情况下你真的需要继承吗?你能用合成来代替吗?或者你能制作CustomTableCellCustomTableHeaderCell实现一个ICustomCell接口吗?如果您可以向我们提供有关您正在尝试做的事情的更多信息,那将有所帮助。

于 2010-01-20T11:18:52.610 回答
0

您可以继续将它们都称为 TableCell 对象,至少如果目标是能够调用您的 foo()。

于 2010-01-20T13:18:20.423 回答