ये संकलक के अनजाने कार्यान्वयन विवरण हैं, और किसी भी समय परिवर्तन के अधीन हैं। (अद्यतन: GeneratedNames.cs
वर्तमान विवरण के लिए C # स्रोतों में देखें; नीचे विवरण कुछ पुराना है।)
हालाँकि, जब से मैं एक अच्छा लड़का हूँ, यहाँ उन विवरणों में से कुछ हैं:
यदि आपके पास अप्रयुक्त स्थानीय चर है जिसे ऑप्टिमाइज़र हटा देता है, तो हम पीडीबी में वैसे भी इसके लिए डिबग जानकारी का उत्सर्जन करते हैं। हमने प्रत्यय __Deleted$को ऐसे चरों पर चिपका दिया ताकि डिबगर को पता चल जाए कि वे स्रोत कोड में हैं लेकिन बाइनरी में प्रतिनिधित्व नहीं किया गया है।
संकलक द्वारा आवंटित अस्थायी चर स्लॉट को पैटर्न CS $ X $ Y के साथ नाम दिया गया है, जहां X "अस्थायी प्रकार" है और Y अब तक आवंटित की गई अस्थायी संख्या है। अस्थायी प्रकार हैं:
0 --> short lived temporaries
1 --> return value temporaries
2 --> temporaries generated for lock statements
3 --> temporaries generated for using statements
4 --> durable temporaries
5 --> the result of get enumerator in a foreach
6 --> the array storage in a foreach
7 --> the array index storage in a foreach.
8 और 264 के बीच अस्थायी प्रकार बहुआयामी सरणियों के लिए अतिरिक्त सरणी सूचकांक भंडार हैं।
264 से ऊपर के अस्थायी प्रकारों का उपयोग अस्थायी लोगों के लिए किया जाता है, जिसमें एक निश्चित फिक्सिंग स्टेटमेंट शामिल होता है।
विशेष संकलक-जनित नाम इसके लिए तैयार किए गए हैं:
1 --> the iterator state ("state")
2 --> the value of current in an iterator ("current")
3 --> a saved parameter in an iterator
4 --> a hoisted 'this' in an iterator ("this")
5 --> a hoisted local in an iterator
6 --> the hoisted locals from an outer scope
7 --> a hoisted wrapped value ("wrap")
8 --> the closure class instance ("locals")
9 --> the cached delegate instance ("CachedAnonymousMethodDelegate")
a --> the iterator instance ("iterator")
b --> an anonymous method
c --> anonymous method closure class ("DisplayClass")
d --> iterator class
e --> fixed buffer struct ("FixedBuffer")
f --> anonymous type ("AnonymousType")
g --> initializer local ("initLocal")
h --> query expression temporary ("TransparentIdentifier")
i --> anonymous type field ("Field")
j --> anonymous type type parameter ("TPar")
k --> auto prop field ("BackingField")
l --> iterator thread id
m --> iterator finally ("Finally")
n --> fabricated method ("FabricatedMethod")
o --> dynamic container class ("SiteContainer")
p --> dynamic call site ("Site")
q --> dynamic delegate ("SiteDelegate")
r --> com ref call local ("ComRefCallLocal")
s --> lock taken local ("LockTaken")
जादुई नाम उत्पन्न करने के लिए पैटर्न यह है: P<N>C__SIजहां:
- P कैशेड डेलीगेट्स और डिस्प्ले क्लास इंस्टेंसेस के लिए CS $ है, अन्यथा खाली।
- N मूल बात से जुड़ा हुआ नाम है, यदि कोई हो
- सी ऊपर सूचीबद्ध एस के माध्यम से चरित्र 1 है
- S एक वर्णनात्मक प्रत्यय है ("वर्तमान", "स्थिति", और इसी तरह) ताकि आपको मेटाडेटा पढ़ते समय याद रखने के ऊपर तालिका न हो।
- मैं एक वैकल्पिक विशिष्ट संख्या हूं