簡體   English   中英

結構屬性不可用

[英]Struct property not available

我有一個具有五個屬性的結構,這些屬性在按鈕_click方法上設置(使用Windows Forms Designer)。 設置完這些后,使用.RunWorkerAsync運行.RunWorkerAsync 然后在后台工作程序的_DoWork方法內部使用該結構。

但是,當我在_ DoWork方法內部調用該結構時,該結構的屬性全部具有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;

這里的null不是struct的屬性,而是Argument在一起。

您需要調用RunWorkerAsync(object argument)RunWorkerAsync(object argument)的重載:

backgroundWorker.RunWorkerAsync(_inputParameter);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM