我的代码中有一个方法,它的名字是bindingSource_PositionChanged。它的定义是:
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);
}我的问题:
System::EventArgs::Empty传递给这个函数的参数e?或任何System::EventArgs^。是什么让nullptr传递给这里的参数发送方呢?还是给任何System::Object^发件人?nullptr成为这个函数的参数e?或System::EventArgs^?类型的任何参数。发布于 2013-07-03 12:05:25
如果并且只有当事件的订阅者使用这些值并期望它们为非空值时,这才会起作用。通常情况下,sender是对事件最“负责”的对象(而且通常,但并不总是订阅者订阅的对象)。EventArgs本身并不能传递任何有趣的信息,因此调用者完全有可能不检查它;但是对于更有趣的事件,订阅者通常会从args访问一些信息-所以如果是null,这通常会失败。EventArgs::Empty简单地避免了每次创建一个新的但不感兴趣的EventArgs实例的需要--因为没有信息,所有使用EventArgs的事件都可能使用同一个实例。
您可以向null发送sender或args;但是,如果这阻止了一些处理程序对您的爱,请不要感到惊讶。最好是发送逻辑发送方和(假定没有任何更有趣的内容) EventArgs::Empty。
https://stackoverflow.com/questions/17447269
复制相似问题