Ответ зависит от семантики вызова; Ваш пример расплывчат и не имеет очевидной семантики, из-за чего невозможно дать хороший ответ.
Предоставляет ли Main услугу Ребенку? Например, является ли звонок, который Child хочет сделать на Main, чем-то вроде «получить мне список пользователей, которым разрешено делать бла», или «сложить все счета к получению за ноябрь»?
Или Main реагирует на событие , связанное с Child? Например, возможно, «Ребенок» - это кнопка, а «Main» - это форма, и «Main» желает реагировать на нажатие кнопки.
В первом случае Main должен предоставить объект - возможно, самого себя - Child, который реализует желаемую службу. Объектом может быть сам Main, или делегат метода, или интерфейс, но это то, что Child может вызывать, когда требуется служба.
В последнем случае Мэйн должен прослушать событие, поднятое Ребенком.
Что является правильным, зависит от значения объектов; Можете ли вы описать смысл более четко?