Czy w języku C # istnieje sposób na pisanie niestandardowych inicjalizatorów obiektów dla nowych typów danych?

W języku C # istnieje „standardowa” technika inicjalizacyjna {Property1 = „a”, Property2 = „b”} i istnieje kilka specjalnych wariantów kolekcji (lista i słownik). {wartość1, wartość2} i {{"klucz1", wartość1}, {"klucz2", wartość2}}.

Chciałbym mieć rekurencyjny inicjator obiektu dla typu danych drzewa, ale nie wiem, czy jest jakiś sposób na dostosowanie tego mechanizmu. Chciałbym coś, co wygląda jak wyrażenie-s. {item1 {item2 item3 item4} {item5 item6}}

Robię to za pomocą konstruktorów, ale chciałbym składnię terser.

questionAnswers(3)

yourAnswerToTheQuestion