У меня есть структура с пятью свойствами, которые установлены на кнопке _click
(с использованием Windows Forms Designer). После установки, рабочий стол bacground выполняется, используя .RunWorkerAsync
. Затем структура используется внутри метода _DoWork
рабочего фона.Свойство Struct недоступно
Однако, когда я вызываю структуру внутри метода _ DoWork
, свойства struct all имеют значение null. Может ли кто-нибудь сказать мне, что я делаю неправильно? Я отчасти новичок в C#.
Определение-структуру
struct
FtpSetting
{
public String Server { get; set; }
public String Username { get; set; }
public String Password { get; set; }
public String FileName { get; set; }
public String FullName { get; set; }
}
FtpSetting _inputParameter;
Функция кнопки мыши (только соответствующий код)
FileInfo fi = new FileInfo(ofd.FileName);
_inputParameter.Server = txtServer.Text;
_inputParameter.Username = txtServer.Text;
_inputParameter.Password = txtServer.Text;
_inputParameter.FileName = fi.Name;
_inputParameter.FullName = fi.FullName;
backgroundWorker.RunWorkerAsync();
функция DoWork (только соответствующий код)
string filename = ((FtpSetting)e.Argument).FileName; // Code crashes here
string fullname = ((FtpSetting)e.Argument).FullName; // ...But all the below values
string username = ((FtpSetting)e.Argument).Username; // ...Are null as well :-(
string password = ((FtpSetting)e.Argument).Password;
string server = ((FtpSetting)e.Argument).Server;
Это вполне вероятно, вам нужен класс, а не на структуру, которые являются подходящими только в очень специфических условиях (и которые не играют хорошо с изменчивостью) (https://msdn.microsoft.com/en-us/library/ms229017(v=vs.110).aspx) –