Поправил по замечаниям и получилось что внутри if еще одно if и более ничего-объеденил все в одно условие.. отсюда вопрос: корректен ли следующий код?
смущает что в одной части условия я только объявляю и присваиваю переменную, а в другой уже ее опрашиваю.. И все внутри одного условия
код корректен, благодаря "is MText mt) &&" т.е. если он MText только тогда будет обращение к свойству mt.Text
Но не зря у тебя сомнения возникли, правильно или нет. Т.к. ты все в один if записал и сделал "плохо читаемый код".
единого совета быть не может как сделать "хорошо читаемый код" но разбив условие например на 2 if и перенеся каждое условие на новую строку ты свой код сделаешь читабельнее.
не экономь на строчках кода или количестве if ;-)