Производные классы наследуют по-разному? - PullRequest
2 голосов
/ 20 января 2010
System.Web.UI.WebControls.UI.TableHeaderCell

происходит от

System.Web.UI.WebControls.UI.TableCell

Так что метод с подписью foo(TableCell tc){}

Принимает экземпляры TableHeaderCell.

Однако если я создам два новых класса и получу один из TableCell, а другой из TableHeaderCell, тогда мой новый класс TableHeaderCell, очевидно, не сможет быть приведен в мой новый класс TableCell, поскольку они не связаны напрямую. *

Есть ли способ обойти это? Я думаю, нет.

Ответы [ 2 ]

3 голосов
/ 20 января 2010

Вы имеете в виду подобную иерархию?

                  TableCell
                 /         \
                /           \
        TableHeaderCell   CustomTableCell
              /
             /                
  CustomTableHeaderCell

Нет, в этом случае вы не можете разыграть CustomTableHeaderCell до CustomTableCell.

Вы уверены, что вам действительно нужно наследование в этом случае? Не могли бы вы использовать композицию вместо этого? Или вы могли бы заставить CustomTableCell и CustomTableHeaderCell реализовать интерфейс ICustomCell? Если бы вы могли дать нам больше информации о том, что вы пытаетесь сделать, это помогло бы.

0 голосов
/ 20 января 2010

Вы можете просто ссылаться на все из них как на объекты TableCell, по крайней мере, если цель состоит в том, чтобы иметь возможность вызывать вашу функцию foo ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...