众所周知,您应该声明作为参数(objectsender,EventArgsargs)的事件。为什么? 最佳答案 这使消费开发人员能够为多个事件编写单个事件处理程序,而不管发送者或事件。编辑:为什么您需要不同的模式?您可以继承EventArgs以提供任意数量的数据,更改模式只会让任何被迫使用这种新模式的开发人员感到困惑和沮丧。 关于c#-为什么C#中的事件要带(sender,EventArgs)?,我们在StackOverflow上找到一个类似的问题: http
在Page_Load、Init等页面事件中,这些(objectsender,EventArgse)参数有什么用?示例会更有帮助。 最佳答案 EventArgse是一个名为e的参数,其中包含事件数据,有关详细信息,请参阅EventArgsMSDN页面。ObjectSender是一个名为Sender的参数,它包含对引发事件的控件/对象的引用。事件参数类:http://msdn.microsoft.com/en-us/library/system.eventargs.aspx例子:protectedvoidbtn_Click(object
最近一直在想这段代码有没有什么显着的区别:publiceventEventHandlerSomeEvent;还有这个:publicdelegatevoidMyEventHandler(objectsender,MyEventArgse);publiceventMyEventHandlerSomeEvent;他们都做同样的事情,我无法分辨出任何区别。尽管我注意到大多数.NETFramework类都为其事件使用自定义事件处理程序委托(delegate)。这有什么具体原因吗? 最佳答案 你是对的;他们做同样的事情。因此,您可能应该更喜欢前
我记得在多个场合和多个地点读到,在触发典型事件时:protectedvirtualOnSomethingHappened(){this.SomethingHappened(this,EventArgs.Empty);}如果没有有趣的事件参数,e应该是EventArgs.Empty,而不是null。我遵循了我的代码中的指导,但我意识到我不清楚为什么这是首选技术。为什么规定的契约(Contract)更喜欢EventArgs.Empty而不是null? 最佳答案 我相信NOTNULL背后的原因是当作为参数传递时,该方法不需要潜在地处理空引
我正准备为带有单个参数的事件参数创建一个通用的EventArgs类:publicclassEventArg:EventArgs{//PropertyvariableprivatereadonlyTp_EventData;//ConstructorpublicEventArg(Tdata){p_EventData=data;}//PropertyforEventArgsargumentpublicTData{get{returnp_EventData;}}}在我这样做之前,C#语言是否具有相同的内置功能?我好像记得在C#2.0出来的时候遇到过类似的东西,但现在我找不到了。或者换句话说,我