.net - C# multi method attached to event, how to handle return value? -
यह कॉल है:
bool isValid = true; अगर (this.ExternalConstraint! = नल) {isValid है और = this.ExternalConstraint (यह, EventArgs.Empty); } अगर (isValid) {// ...}
इवेंट की तरह दिखें:
सार्वजनिक प्रतिनिधि बूल बाहरी कंटेंट (ऑब्जेक्ट प्रेषक, इवेंटआर्ग्स आर्ग्स); घटना बाहरी संयम ExternalConstraint;
डीबगिंग करते समय मैंने देखा कि घटना से जुड़े सभी पद्धति को बुलाया जाता है लेकिन केवल अंतिम वापसी इस रेखा पर वापस आती है: isValid और amp; = this.ExternalConstraint (यह, EventArgs .Empty);
। निर्णय लेने के लिए मैं हर पद्धति को वापस कैसे लौटा सकता हूं या सभी वापसी मूल्य को संभालने के लिए घटना कैसे प्राप्त करूं?
ईवेंट का उपयोग करते समय वापसी मूल्यों पर निर्भर रहने के लिए यह बुरा व्यवहार माना जाता है इसके बजाय, आपको परिणाम प्राप्त करने के लिए उपयोगकर्ता-निर्धारित EventArgs
का उपयोग करना चाहिए।
सार्वजनिक वर्ग ConstraintEventArgs: EventArgs {public bool ISValid {get; सेट; }}
कुछ तंत्र का कार्यान्वयन भी महत्वपूर्ण है जिसमें एकाधिक ईवेंट श्रोताओं एक दूसरे के मूल्यों को ओवरराइड नहीं करेंगे। ज्यादातर समय (बूलियन ध्वज के साथ), हम उपयोगकर्ताओं को इसे स्पष्ट रूप से चालू करने के लिए (कभी भी बंद) करने की अनुमति नहीं देंगे। उदाहरण के लिए, CancelEventArgs
के साथ, यह यह स्पष्ट रूप से झूठे
पर सेट करने के लिए एक अच्छा विचार नहीं है; उपयोगकर्ताओं को इसे हमेशा true
पर सेट करना चाहिए या कुछ भी नहीं करना चाहिए वही विचार यहाँ IsValid
।
Comments
Post a Comment