मैं कैसे पता कर सकते हैं कि कितने वस्तुओं सी # में एक वर्ग के बनाए जाते हैं सी # में एक वर्ग के कितने ऑब्जेक्ट का निर्माण होगामैं कैसे पता कर सकते हैं
5
A
उत्तर
13
आप एक स्थिर काउंटर डाल करने के लिए होगा कि में वृद्धि की गई थी निर्माण पर:
public class Foo
{
private static long instanceCount;
public Foo()
{
// Increment in atomic and thread-safe manner
Interlocked.Increment(ref instanceCount);
}
}
कुछ नोट:
- यह वर्तमान में स्मृति मामलों में की संख्या की गिनती नहीं करता है - कि decr करने के लिए एक finalizer होने शामिल होगा काउंटर ईमेंट; मैं सिफारिश नहीं होगा कि
- यह क्रमबद्धता जैसे कुछ तंत्र है जिसके एक निर्माता
- जाहिर है यह केवल काम करता है आप वर्ग संशोधित कर सकते हैं, तो बाईपास कर सकता है के माध्यम से बनाया उदाहरणों में शामिल नहीं किया जाएगा; आप नहीं,
System.String
के उदाहरण बनाई की संख्या पता कर सकते हैं उदाहरण के लिए -/डिबगिंग में hooking रूपरेखा एपीआई
आप यह जानकारी क्यों चाहते हैं ब्याज से बाहर है, बिना कम से कम नहीं?
1
इस एक वर्ग है कि आप तैयार किया है है?
यदि हां, तो वर्ग कि निर्माता में वृद्धि की जाती है और निपटान में कम कर रहा है के लिए एक काउंटर जोड़ें।
संभावित आप प्रदर्शन मॉनिटर में यह ट्रैक कर सकते हैं कि यह एक प्रदर्शन काउंटर बना सकता है।
संबंधित मुद्दे
- 1. कैसे कर सकते हैं मैं MVC3
- 2. मैं कैसे परिभाषित कर सकते हैं एक्सेल
- 3. मैं कैसे परिवर्तित कर सकते हैं जावा
- 4. iPhone - मैं कैसे पता लगा सकते हैं एक युक्ति क्रम
- 5. कैसे मैं क्या 500 त्रुटि मैं Django में हो रही है पता कर सकते हैं?
- 6. मैं संशोधन कर सकते हैं कैसे पिछले एक Git प्रतिबद्ध
- 7. मैं कैसे @OneToMany संग्रह के साथ पेजिंग कर सकते हैं
- 8. मैं मेरे GCM आवेदन बादल (सूची उपकरण) में पंजीकृत डिवाइस पता कर सकते हैं कैसे
- 9. मैं जब एक फाइल डाउनलोड ASP.NET में पूरा कर लिया है कैसे पता लगा सकते हैं?
- 10. क्या कर सकते हैं कि sed क्या कर सकते हैं?
- 11. मैं पर्ले regexes कैसे प्रोफाइल कर सकते हैं?
- 12. Django में, मैं एक sessionkey कैसे साफ़ कर सकते हैं?
- 13. मैं alignas (टी) अनुकरण कैसे कर सकते हैं?
- 14. मैं कैसे निर्धारित कर सकते हैं एक गतिशील सरणी VBScript
- 15. मैं एक एमवीसी UserViewControl परीक्षण कैसे कर सकते हैं?
- 16. मैं ओपनसीएल compability के लिए कैसे परीक्षण कर सकते हैं?
- 17. मैं Node.js में jQuery.parseXML काम कैसे कर सकते हैं
- 18. मैं कैसे रिवर्स कर सकते हैं माणिक के समारोह
- 19. मैं जावास्क्रिप्ट के साथ memcached कैसे उपयोग कर सकते हैं?
- 20. मैं कैसे जांच कर सकते हैं (मेरे) वाक्य शुद्धता
- 21. मैं WebGL में एक वस्तु कैसे चेतन कर सकते हैं
- 22. मैं एक SQLite डेटाबेस कैसे बंद कर सकते हैं?
- 23. कैसे मैं बस "रन" कर सकते हैं तुतलाना फ़ाइलों
- 24. मैं एक यूआरएल कैसे unshorten कर सकते हैं?
- 25. कैसे मैं एक ActionFilter में actionName प्राप्त कर सकते हैं
- 26. मैं कैसे नियंत्रित कर सकते हैं जो YAML
- 27. मैं कैसे परिवर्तित कर सकते हैं String [] <String>
- 28. मैं एक combobox कैसे साफ़ कर सकते हैं?
- 29. मैं कैसे जांच कर सकते हैं कि सर्वर सोप अनुरोध
- 30. मैं रेल में कैस्केड हटाने की स्थापना कर सकते हैं?
कैसे के बारे में 'Interlocked.Decrement (संदर्भ instanceCount)' वस्तु का नाशक में? फिर 'instanceCount' वर्तमान में रहने वाले ऑब्जेक्ट उदाहरणों का अनुमान देगा। – user
सहमत है, यह अंतिम रूप दिए जाने के लिए नाशक भीतर घटती उपयोगी होता है। '~ Foo() {Interlocked.Decrement (ref instanceCount); } '@ जोन्स स्केट, आप इसकी सिफारिश क्यों नहीं करेंगे (ब्याज से बाहर)? – defines
@defines: क्योंकि है कि कुछ अलग करने की गिनती है - गिनती की जाती है कि कितने वस्तुओं को अंतिम रूप नहीं दिया गया है। ओपी बनाया गया वस्तुओं की संख्या के लिए पूछ रहा था। अगर मैं 100 बनाता हूं और वे सभी को अंतिम रूप दिया गया है/जीसीएड, मैंने अभी भी 100 ऑब्जेक्ट्स बनाए हैं। –