了解C#事件使用发送方对象

Ada*_*obb 2 c# events pass-by-reference

我是C#作为一种语言(来自C++背景)的新手,我目前正在编写一个使用事件驱动API的应用程序.

主要包括注册事件/响应处理程序和启动事件监视器,然后处理这些异步事件/响应.

我理解有点麻烦的是使用发送者对象.

我想用它的方法是在发出请求(或设置监视器)时将句柄传递给我拥有各种结构和数据的类对象.然后在收到的响应/正在引发的事件中,我可以获取发送者对象,将其转换回预期的类类型并访问成员,进行进一步的更改等等,以便将其视为仍然是指向原始数据的指针(我希望它会是什么?).

所以我的问题确实是,因为我在我的请求中传递一个类对象,这将是一个有效的引用,还是将它按值逐行复制,因为它实际上只是一个通用对象,我最终会得到一个事件上我的类对象的空副本?

或者第三种选择,我可能完全在错误的轨道上,应该忘记整个事情?:)

问题是我的脑子仍然在指针模式工作我想...

Mus*_*sis 13

这是一个参考.试试这段代码,了解它是如何工作的:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    Whatever(sender);
}

private void Whatever(object sender)
{
    TextBox tb = (TextBox)sender;
    tb.Text = "yo";
}
Run Code Online (Sandbox Code Playgroud)

如果object没有通过引用传递,textBox1将保留您键入的任何文本.


Geo*_*off 7

我不知道我完全理解你的问题.但要部分回答你:

您将获得对象的引用.