首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我们需要将nullptr传递给对象^或EventArgs时?为什么要传递EventArgs::空到EventArgs^?

当我们需要将nullptr传递给对象^或EventArgs时?为什么要传递EventArgs::空到EventArgs^?
EN

Stack Overflow用户
提问于 2013-07-03 11:55:18
回答 1查看 189关注 0票数 0

我的代码中有一个方法,它的名字是bindingSource_PositionChanged。它的定义是:

代码语言:javascript
复制
private: System::Void bindingSource_PositionChanged(**System::Object^  sender, System::EventArgs^  e**) 
{
    toolStripStatusLabel->Text = String::Format("Datensatz {0:N0} von {1:N0}", bindingSource->Position + 1, bindingSource->Count);
}

我的问题:

  1. 在我的程序中,以这种方式调用该函数: bindingSource_PositionChanged(nullptr,System::EventArgs::空); 我的问题1:是什么使System::EventArgs::Empty传递给这个函数的参数e?或任何System::EventArgs^。是什么让nullptr传递给这里的参数发送方呢?还是给任何System::Object^发件人?
  2. 在我的程序中,以另一种方式调用该函数: bindingSource_PositionChanged(nullptr,nullptr); 问题2:是什么使nullptr成为这个函数的参数e?或System::EventArgs^?类型的任何参数。
EN

回答 1

Stack Overflow用户

发布于 2013-07-03 12:05:25

如果并且只有当事件的订阅者使用这些值并期望它们为非空值时,这才会起作用。通常情况下,sender是对事件最“负责”的对象(而且通常,但并不总是订阅者订阅的对象)。EventArgs本身并不能传递任何有趣的信息,因此调用者完全有可能不检查它;但是对于更有趣的事件,订阅者通常会从args访问一些信息-所以如果是null,这通常会失败。EventArgs::Empty简单地避免了每次创建一个新的但不感兴趣的EventArgs实例的需要--因为没有信息,所有使用EventArgs的事件都可能使用同一个实例。

您可以向null发送senderargs;但是,如果这阻止了一些处理程序对您的爱,请不要感到惊讶。最好是发送逻辑发送方和(假定没有任何更有趣的内容) EventArgs::Empty

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17447269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档