परिचय
टाइप सेफ्टी का अर्थ है कि कंपाइलर यह सुनिश्चित करता है कि ऑब्जेक्ट केवल अपने घोषित टाइप के अनुसार उपयोग किए जाएं। एक ऑब्जेक्ट दूसरे ऑब्जेक्ट की मेमोरी में "चुपके" नहीं जा सकता।
उदाहरण: असंगत टाइप कास्ट रोका गया
public class One { public int Prop { get; set; } }
public class Two { public int Prop { get; set; } public int Prop1 { get; set; } }
class Program
{
static void Main()
{
One ob = new One();
// Two t = (Two)ob; // कंपाइल-टाइम एरर: 'One' को 'Two' में कास्ट नहीं कर सकते
// क्योंकि One और Two असंबंधित हैं (दोनों object से इनहेरिट करते हैं लेकिन एक-दूसरे से नहीं)
}
}
व्याख्या
OneऔरTwoदोनोंobjectसे इनहेरिट करते हैं, लेकिन एक-दूसरे से संबंधित नहीं हैं।- कंपाइलर
(Two)obको अवैध मानता है क्योंकिobरनटाइम परTwoइंस्टेंस नहीं है। - यह मेमोरी करप्शन और अप्रत्याशित व्यवहार को रोकता है।
टाइप सेफ्टी के लाभ
- कंपाइल टाइम पर बग पकड़ता है (रनटाइम क्रैश के बजाय)।
- कोड विश्वसनीयता और रखरखाव में सुधार।
- जेआईटी ऑप्टिमाइज़ेशन सक्षम करता है।
संबंधित अवधारणाएं
- स्ट्रॉन्ग टाइपिंग: हर वेरिएबल का घोषित टाइप होता है।
- स्टैटिक टाइपिंग: टाइप जांच कंपाइल टाइम पर।
- डायनामिक टाइप (
dynamic): टाइप जांच रनटाइम पर टालता है (टाइप सेफ्टी कम करता है)।