Мне дали написать небольшой проект на c #, который, по сути, заключает в себе несколько библиотек в консольном приложении.
Я столкнулся с тем, что считаю странной проблемой. Я объявил пару локальных переменных в методе main для использования. Идея состоит в том, что при разборе аргументов их значения сохраняются в этих переменных (аргументы находятся в парах ключей, например -u: имя пользователя).
Ниже приведен код, который я использую для запуска процесса.
namespace ziptogo
{
public class ZipToGo
{
public static void Main(string[] args)
{
string user = null;
int divisionid = 0;
string mysqlServer = null;
string mysqlName = null;
string mysqlUser = null;
string mysqlPwd = null;
string barcode = null;
bool zipped = false;
ZipToGo ziptogo = new ZipToGo();
if (args.Length == 0)
{
ziptogo.usage();
}
//we look throught the arguments and extract the values.
for (int i = 0; i < args.Length; i++)
{
string[] values = ziptogo.getArgValue(args[i]);
if (values[0].Equals("-U") || values[0].Equals("-u"))
{
user = values[1];
}
if (values[0].Equals("-D") || values[0].Equals("-d"))
{
divisionid = Int32.Parse(values[1]);
}
....
Поскольку я новичок в написании на c #, я упускаю что-то очевидное в отношении того, почему строки, такие как mysqlServer, игнорируются методом main ??
Целочисленное деление и строковый штрих-код - единственные переменные, которые не игнорируются методом.
Спасибо.