c# - Array change event -


मेरे पास एक सरणी गुण है जिसे Value :

  सार्वजनिक स्ट्रिंग [,] मूल्य {प्राप्त; सेट; }   

मैं सेव () पद्धति को कॉल करना चाहता हूं जब सरणी के किसी भी मान (पूरे सरणी नहीं) बदल गया है।

क्या इसे लागू करने का एक आसान तरीका है?

वास्तव में नहीं Arrays बहुत आदिम प्रकार हैं और जब चीजें बदलती हैं तो आपको सूचित नहीं करते हैं।

सबसे अच्छा आप कर सकते हैं एक कस्टम प्रकार बनाते हैं जो कि 2 डी सरणी की तरह काम करता है, लेकिन इसके अलावा यह एक इवेंट तब उठाता है जब कोई तत्व बदल गया हो । आपका वर्तमान वर्ग तब इस घटना की सदस्यता लेंगे और सहेजें () पर कॉल करें।

कुछ अतिरिक्त टिप्पणियां:

  • संभवत: आपको बेनकाब नहीं करना है सेटर, यह लोगों को बदलने की इजाजत देता है जो आप इंगित कर रहे हैं। आप संभवत: केवल प्राप्तकर्ता को बेनकाज़ करना चाहते हैं, ताकि वे मूल्य बदल सकें, लेकिन पूरे सरणी नहीं।
  • मैंने जो भी उल्लेख किया है, उसके लिए एक प्रकार का हो सकता है, मुझे एक के बारे में पता नहीं है।
  • यदि आप एपीआई को वैसे भी बदलने जा रहे हैं, तो यह आपके वर्ग पर एक सूचक को उजागर करने के लिए और अधिक समझ सकता है, फिर सहेजें को कॉल करें, जब अनुक्रमणिका का सेटर कहा जाता है। नीचे देखें।
     सार्वजनिक स्ट्रिंग यह [int x, int y] {get.localArray [x, y] लौटें; } सेट {this.localArray [x, y] = मान; this.Save (); }}   

Comments

Popular posts from this blog

qt - switch/case statement in C++ with a QString type -

python - sqlite3.OperationalError: near "REFERENCES": syntax error - foreign key creating -

Python's equivalent for Ruby's define_method? -