gpt4 book ai didi

c# - 这个 C# 代码是什么意思?

转载 作者:行者123 更新时间:2023-11-30 17:49:20 25 4
gpt4 key购买 nike

谁能给我解释一下。我有这样的代码,但我不知道是什么意思。

void ConnectionManager_ConnectionFailed(object sender, EventArgs e)
{
BeginInvoke((MethodInvoker)delegate()
{
if (cbAutoConnect.Checked)
Connect();
else
State = ConnectState.NotFound;
});
}

我的问题:

  1. 这个方法是 EventHandler 吗?

  2. 这段代码的用途是什么?

    BeginInvoke((MethodInvoker)delegate() {

  3. 当执行条件为“Else”时,“State”发生了什么?

注意:

连接是一种方法。

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;

最佳答案

Is this method an EventHandler?

是的。

What the purpose of this code is?

您正在使用 delegate { ... } 定义一个匿名方法,然后将其转换为 MethodInvoker委托(delegate)并将其传递给 Control.BeginInvoke在创建控件的线程上异步执行此匿名方法的方法。

What happened to the "State" when execution condition "Else"?

如果 cbAutoConnect.Checkedtrue Connect 方法正在调用,否则 State's 值更改为 ConnectState.NotFound,就是这样。

关于c# - 这个 C# 代码是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21927446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com