मेरा मानना है कि निम्नलिखित वीबी.Net कोड कार्यवाही सी # कोड के बराबर है; हालांकि वीबी.Net परीक्षण विफल रहता है - घटना संभालने वाला कार्यक्रम लैम्ब्डा कभी नहीं कहा जाता है।VB.Net में लैम्ब्डा ईवेंट हैंडलर घोषित कैसे करें?
क्या चल रहा है?
VB.Net संस्करण - विफल रहता है:
<TestFixture()> _
Public Class TestClass
<Test()> _
Public Sub EventTest()
Dim eventClass As New EventClass
Dim eventRaised As Boolean = False
AddHandler eventClass.AnEvent, Function() (eventRaised = True)
eventClass.RaiseIt()
Assert.IsTrue(eventRaised)
End Sub
End Class
Public Class EventClass
Public Event AnEvent()
Public Sub RaiseIt()
RaiseEvent AnEvent()
End Sub
End Class
सी # संस्करण - पास:
[TestFixture]
public class TestClass
{
[Test]
public void EventTest()
{
var eventClass = new EventClass();
var eventRaised = false;
eventClass.AnEvent +=() => { eventRaised = true; };
eventClass.RaiseIt();
Assert.IsTrue(eventRaised);
}
}
public class EventClass
{
public delegate void EventHandler();
public event EventHandler AnEvent;
public void RaiseIt()
{
AnEvent();
}
}
वे वास्तव में वीबी.Net में लैम्ब्स के साथ डूब गए। – chrissie1
सहमत हैं, ऐसा लगता है कि उन्होंने कम से कम लिंक प्राप्त करने के लिए किया था और यही वह था। –
ध्यान दें कि VS2010 VB.Net lambdas के रूप में अब subroutines हो सकता है और एक मूल्य वापस नहीं करने की आवश्यकता है। –