क्या कोई विशेषताएं हैं जो मैं बॉयलरप्लेट विधियों पर लागू कर सकता हूं ताकि ऐसी विधियां स्टैक निशान में दिखाई न दें? मुझे उनमें से बहुत कुछ मिला है और कुछ मामलों में वे कई स्तर गहरे हैं। यह सिर्फ चीजों को छेड़छाड़ कर रहा है।मैं संकलक को स्टैक निशान में किसी विधि को अनदेखा करने के लिए कैसे कह सकता हूं?
उदाहरण कोड: सी में Spork.Program.ThrowMe() पर
:
class Program { public static void ThrowMe() { throw new NotImplementedException(); } public static void HideMe() { ThrowMe(); } static void Main(string[] args) { try { HideMe(); } catch (Exception e) { } } }
यह इस स्टैक ट्रेस फेंकता \ परियोजनाओं \ XXX \ परीक्षण सैंडबॉक्स \ ConsoleTesting \ Program.cs : लाइन 58
Spork.Program.HideMe() सी में कम से : \ परियोजनाओं \ XXX \ परीक्षण सैंडबॉक्स \ ConsoleTesting \ Program.cs: लाइन 64
012,Spork.Program.Main पर (String [] args) C: \ परियोजनाओं \ XXX \ परीक्षण सैंडबॉक्स \ ConsoleTesting \ Program.cs: लाइन 70
क्या आप पूछ रहे हैं कुछ मामलों में सुविधाजनक है और दूसरों में एक दुःस्वप्न है। कल्पना करें कि कोई और आपके स्टैक ट्रेस को पढ़ रहा था और देखा कि 'मुख्य' जिसे 'थ्रोमे() 'कहा जाता है। फिर वे 'मुख्य' की जांच करते हैं लेकिन यह नहीं देख सकते कि वह कॉल कहां बनाया गया है। साथ ही, कल्पना करें कि 'मुख्य' 500 लाइन लंबी है इसलिए यह आपके नमूने के रूप में स्पष्ट नहीं है। मैं आपके साथ सहानुभूति देता हूं लेकिन आखिरकार यह "फीचर" दुर्व्यवहार करेगा और कोडिंग एक दुःस्वप्न होगी, यही कारण है कि यह अस्तित्व में नहीं है। –
एक उत्कृष्ट बिंदु। – Amy