Ваш код не имеет никакого смысла. Если пользователь не передает какие-либо аргументы, он запускает приложение Windows Forms.
Если пользователь передает аргументы, вы добавляете каждый аргумент к тому, что кажется Список (я понятия не имею, потому что вы никогда не показываете определение mainObject!), Назначьте первые два аргумента двум различным переменным, даже если предоставлен только один аргумент (!), А затем выбросите все это и ничего не сделайте с любым из них.
О, и у вас в коде отсутствует закрывающая фигурная скобка перед оператором catch.
Один из способов присваивания аргументов отдельным переменным является проверка количества аргументов:
string argHTTPS = string.Empty; string argCustDbName = string.Empty; if (args.Count() > 0) { argHTTPS = args[0]; } if (args.Count() > 1) { argCustDbName = args[1]; }
Но, как я уже сказал, вы ничего не делаете с этими переменными, и я не знаю, что такое mainObject, поэтому я думаю, что вы делаете то, чего не следует делать в основном методе вашего кода запуска.