मैनेज्ड कोड वह कोड है जिसका निष्पादन कॉमन लैंग्वेज रनटाइम (CLR) द्वारा प्रबंधित किया जाता है।
मुख्य विशेषताएं:
- स्वचालित मेमोरी प्रबंधन: गारबेज कलेक्टर द्वारा मेमोरी आवंटन/डीआवंटन
- टाइप सेफ्टी: टाइप चेकिंग कंपाइल टाइम और रनटाइम पर
- एक्सेप्शन हैंडलिंग: संरचित एक्सेप्शन हैंडलिंग
- सुरक्षा: कोड एक्सेस सिक्योरिटी (CAS)
कार्यप्रणाली:
सोर्स कोड (C#)
↓ कंपाइलर (csc.exe)
IL कोड (इंटरमीडिएट लैंग्वेज) + मेटाडेटा
↓ JIT कंपाइलर (रनटाइम पर)
मशीन कोड (नेटिव)
↓ निष्पादन
CLR द्वारा प्रबंधित
मैनेज्ड vs अनमैनेज्ड कोड
| पहलू | मैनेज्ड कोड (C#, VB.NET, F#) | अनमैनेज्ड कोड (C, C++) |
|---|---|---|
| मेमोरी | GC द्वारा स्वचालित | मैन्युअल (malloc/free) |
| कंपाइलेशन | IL → JIT → मशीन कोड | सीधे मशीन कोड |
| पॉइंटर्स | प्रतिबंधित (unsafe कॉन्टेक्स्ट में अनुमत) | पूर्ण एक्सेस |
| प्लेटफॉर्म | .NET रनटाइम आवश्यक | नेटिव, OS-निर्भर |
Unsafe कॉन्टेक्स्ट:
C# unsafe कीवर्ड के साथ अनमैनेज्ड कोड (पॉइंटर्स) की अनुमति देता है:
unsafe {
int* ptr = &variable;
// पॉइंटर ऑपरेशन्स
}
इसके लिए कंपाइलर विकल्प /unsafe आवश्यक है।