[英]What this C# code mean?
誰可以給我解釋一下這個。 我有這樣的代碼,但我不知道是什么意思。
void ConnectionManager_ConnectionFailed(object sender, EventArgs e)
{
BeginInvoke((MethodInvoker)delegate()
{
if (cbAutoConnect.Checked)
Connect();
else
State = ConnectState.NotFound;
});
}
我的問題:
這個方法是EventHandler嗎?
這段代碼的目的是什么?
BeginInvoke((MethodInvoker)delegate(){
執行條件“Else”時“狀態”發生了什么?
注意:
連接是一種方法。
State是此代碼描述的枚舉
public ConnectState State
{
get
{
return _State;
}
{
if (_State == value)
return;
_State = value;
switch (value)
{
case ConnectState.Connected:
DoingSomeThing;
break;
case ConnectState.Connecting:
DoingSomeThing;
break;
case ConnectState.NotFound:
DoingSomeThing;
break;
}
if (StateChanged != null)
StateChanged(this, new EventArgs<ConnectState>(value));
}
}
另一個暗示
枚舉啟動
public enum ConnectState { Connected, Connecting, NotFound }
ConnectState _State = ConnectState.NotFound;
我不知道這到底是什么,但我認為這是“ConnectState”對象/類的自定義EventHandler聲明。
public EventHandler<EventArgs<ConnectState>> StateChanged;
這個方法是EventHandler嗎?
是的。
這段代碼的目的是什么?
您正在使用delegate { ... }
定義一個匿名方法,然后將其轉換為MethodInvoker
委托並將其傳遞給Control.BeginInvoke
方法,該方法在創建控件的線程上異步執行此匿名方法。
執行條件“Else”時“狀態”發生了什么?
如果cbAutoConnect.Checked
為true
Connect
方法正在調用,否則State's
值將更改為ConnectState.NotFound
,就是這樣。
這是像你說的那樣的事件。 如果連接失敗,並且檢查了自動連接,它會再次嘗試重新連接,如果沒有,它會通過使用ConnectionState給出“NotFound”錯誤
我建議你向編寫本文的程序員提問
1可能是的,你也可以找到誰調用它來確保猜測。 2 asyn執行匿名委托(方法)
3呃~~這個成員的設置方法很奇怪。
看看這個:case ConnectState.NotFound:DoingSomeThing; 設置值后,它沒有結束,如果狀態改變,繼續執行DoingSomeThing。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.