मैं जांच करने के लिए क्या संकलक पर्दे के पीछे क्या कर रहा है यह बहुत ही बुनियादी programm लिखा है:नहीं देख सकते हैं कि कैसे संकलक मेरी बंद के लिए कक्षाओं वह बनाता है का उपयोग करता है
class Program
{
static void Main(string[] args)
{
var increase = Increase();
Console.WriteLine(increase());
Console.WriteLine(increase());
Console.ReadLine();
}
static Func<int> Increase()
{
int counter = 0;
return() => counter++;
}
}
अब जब मैं के साथ कोड को देखो परावर्तक मैं देख पा रहे हैं कि संकलक ऐसे ही मेरी बंद करने के लिए एक वर्ग उत्पन्न करता है:
[CompilerGenerated]
private sealed class <>c__DisplayClass1
{
// Fields
public int counter;
// Methods
public int <Increase>b__0()
{
return this.counter++;
}
}
कि ठीक है और मुझे पता है कि वह है कि मेरे बंद को संभालने के लिए क्या करने की जरूरत है। हालांकि, मैं नहीं देख सकता कि वह वास्तव में इस वर्ग का उपयोग कैसे कर रहा है। मेरा मतलब है कि मुझे कोड ढूंढने में सक्षम होना चाहिए जो "<> c__DisplayClass1" को तत्काल करता है, क्या मैं गलत हूं?
संपादित
अगर मैं वृद्धि विधि पर क्लिक करें यह है कि जैसा दिखता है:
private static Func<int> Increase()
{
int counter = 0;
return delegate {
return counter++;
};
}
क्या आप शेष संकलित कोड पोस्ट कर सकते हैं? विशेष रूप से आपकी मुख्य विधि। – dowhilefor
@dowhilefor: मुख्य विधि वास्तव में बहुत उबाऊ होगी। यह सिर्फ एक प्रतिनिधि को पाने के लिए एक तरीका बुला रहा है, प्रतिनिधि को दो बार आमंत्रित करता है और परिणामों को प्रिंट करता है, फिर 'कंसोल। रीडलाइन' को कॉल करता है। –