C# Internal Class: जब हम किसी Type को किसी अन्य Type के अन्दर Define करते हैं, तो इस प्रकार के Type Definition को Nested Type Definition कहा जाता है। चूंकि Object Oriented Programming Language में Class ही सबसे महत्वपूर्ण Type होता है, इसलिए सामान्यत: किसी Class के अन्दर ही अन्य Types की Nesting की जाती है।
Nested Type तब Define किया जाता है, जब किसी Class या Structure के Scope में ही किसी Inner Type की जरूरत होती है। क्योंकि सामान्यत: Inner Type एक प्रकार से Member की तरह Treat होता है और CLR द्वारा इसे किसी भी अन्य Member जैसे कि Field, Property, Method या Event की तरह ही Treat किया जाता है।
public class OuterClass { public class PublicInnerClass { // Inner Class Members } private class PrivateInnerClass { // Inner Class Members } }
जब हम Nested Class Create करते हैं, तो Nested Class के साथ हम किसी भी Access Modifier का प्रयोग कर सकते हैं, जैसाकि उपरोक्त Code Segment में हमने Inner Class के साथ private Access Specifiers का प्रयोग किया है। जबकि सामान्य रूप से हम किसी भी Non-Nested Class के साथ private या internal के अलावा अन्य किसी Access Modifier को Use नहीं कर सकते।
चूंकि Nested Type हमेंशा अपने Container Class या Structure का Member होता है, इसलिए ये अपने Container Class के Private Members को भी Directly Access कर सकता है। लेकिन Nested Class सामान्यत: एक प्रकार से Outer Class की Helper Class होती है। इसलिए किसी Nested Class को Outer Class से बाहर किसी External Class में Directly Access नहीं किया जा सकता।
जब किसी एक Type में किसी दूसरे Type को Nest किया जाता है, तो Outer Type, Inner Type का Object Create कर सकता है और Nested Type के Data को Point भी कर सकता है। जबकि यदि हम Nested Type को External Class में Use करना चाहें, तो हमें Inner Class के Fully Qualified Name को Specify करना जरूरी होता है।
उदाहरण के लिए यदि हम उपरोक्त Class के आधार पर एक Main() Method Class Create करें और उस Class में उपरोक्त Class में Defined Inner Class के Object Create करना चाहें, तो हमारा Main() Method Class कुछ निम्नानुसार बनेगा:
static void Main(string[] args) { // Create and use the public inner class. OK! OuterClass.PublicInnerClass inner; inner = new OuterClass.PublicInnerClass(); // Compiler Error! Cannot access the private class. OuterClass.PrivateInnerClass inner2; inner2 = new OuterClass.PrivateInnerClass(); }
जैसाकि हम इस Code Segment द्वारा समझ सकते हैं कि जब हम किसी External Class में किसी Inner Class का Object Create करना चाहते हैं, तो हम केवल उसी Inner Class का Object Create कर सकते हैं, जिसे public Modifier के साथ Specify किया गया है। साथ ही Inner Class को Specify करने के लिए हमें Fully Qualified Name Specify करना भी जरूरी होता है।
जबकि यदि हम किसी External Class में किसी private Modifier के साथ Specified Inner Class का Object Create करना चाहें, तो C# Compiler हमें ऐसा करने से रोकता है और Error Return करता है।
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook C#.NET in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
C#.NET in Hindi | Page:908 | Format: PDF