c# प्रकार 'System.InvalidCastException' का एक पहला मौका अपवाद WindowsBase.dll में हुआ



wpf casting (1)

ऑब्जेसबल कलेक्शन के लिए एक सूची बॉक्स के आइटम्स स्रोत को बाध्य करने पर मुझे यह अपवाद मिल रहा है ObservableCollection<object>

संग्रह का एक मिश्रण के साथ आबादी है {DependencyPropertyChangedEventArgs, EventEntry}

मैं DependencyPropertyChangedEventArgs प्रॉपर्टी बदल गया ईवेंट एआरग्स पाया और पाया:

public struct DependencyPropertyChangedEventArgs
{
    ...
    public override bool Equals(object obj)
    {
        return this.Equals((DependencyPropertyChangedEventArgs)obj); <- huge cast right here?
    }
}

इवेंट के लिए कोड प्रविष्टि:

public class EventEntry
{
    public EventEntry(string name)
    {
        Name = name;
    }
    public string Name { get; private set; }
}

जैसा कि मैंने झांकना कोड पढ़ा है, यह विस्फोट के लिए डिज़ाइन किया गया है।

क्या यह सही है?


पुष्टि बग, repro:

[Test]
public void Repro()
{
    var args = new DependencyPropertyChangedEventArgs(UIElement.IsEnabledProperty, false, true);
    Assert.Throws<InvalidCastException>(() => args.Equals(1));
}

कार्यान्वयन में पुष्टि बग: (नीचे कोड संदर्भ स्रोत से है)

public override bool Equals(object obj)
{
    return Equals((DependencyPropertyChangedEventArgs)obj);
}

कनेक्ट पर एक बग दायर





equality