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



wpf casting (1)

पुष्टि बग, 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);
}

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

ऑब्जेसबल कलेक्शन के लिए एक सूची बॉक्स के आइटम्स स्रोत को बाध्य करने पर मुझे यह अपवाद मिल रहा है 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; }
}

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

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





equality