Не имея конкретного пользователя, который знает о вашем классе, вы не сможете сделать это с этим интерфейсом.IBSTNode
не предоставляет метод Print
с аргументами, поэтому нет способа передать информацию через вызов.
Если они специально работают с экземпляром вашего класса (в отличие от простоэкземпляр некоторого IBSTNode
), вы можете определить дополнительный метод, который принимает эти дополнительные аргументы (но вам все равно необходимо реализовать метод Print()
без параметров из-за интерфейса).
Если абсолютноПри необходимости вы также можете взломать ее и определить где-нибудь статическую переменную (либо в своем собственном классе, либо, возможно, в каком-то новом PrintOptions
классе), которую они могут установить перед вызовом Print()
- ваш метод может затем прочитать эту переменную и действовать соответственно,Однако эту опцию следует считать абсолютным последним средством.
Конечно, это предполагает, что Print
должен в первую очередь выполнять обход, то есть вызывать Print
на узле.распечатайте детей также.Гораздо лучшим выбором было бы перенести обход из IBSTNode и только Print
распечатать отдельный узел - и вполне вероятно, что именно так и должно работать Print
.
Так как у вас есть полный доступ к внутренним частям IBSTNode, вы можете написать любой вид обхода, который пожелаете (при условии, что он еще не определен), и если Print
не должен просто печатать значение отдельного узла,вы даже можете напечатать Value
самостоятельно как часть этого обхода.