Ну вам даже на русском пишут (кстати переключите на английский. И код в тег код оберните)...
Что должна вернуть функция Nikita, если я в нее передам третим параметром 'q', например?
Крч функция с возвращаемым параметром должна возвращать значение ВСЕГДА. Или кидать эксепшн.
Нет, неправильно понимаете. И высказывание честно такое себе.
Инкапсуляцию можно применять не только к программному коду, но и к сущностям как таковым.
Ну вариантов миллион с копейками.
Статические переменные/методы, ссылка на форму2 в форме1, наоборот - ссылка в форме2 на форму1 (типа DI). Общий класс-провайдер данных...
Cоздать переменную на этапе выполнения? И как вы потом планируете с ней работать из кода?
Не, это в принципе можно замутить рефлексией - можете в ее сторону и гуглить.
Но проще обойтись обычным KeyValuePair или Dictionary, где ключ - имя которое введет пользователь - ну а значение и есть значение