C # आंशिक वर्ग और आंशिक विधि (उदाहरण के साथ)

इस लेख में हम C # में आंशिक वर्ग और आंशिक विधियों को कैसे और क्यों लागू किया जाता है, इसके बारे में जानने वाले हैं।

कई परिस्थितियां हैं जब आपको एक वर्ग परिभाषा को विभाजित करने की आवश्यकता हो सकती है, जैसे कि बड़े पैमाने पर परियोजनाओं पर काम करते समय, कई डेवलपर्स और प्रोग्रामर को एक ही समय में एक ही वर्ग पर काम करने की आवश्यकता हो सकती है। इस मामले में हम आंशिक वर्ग नामक एक सुविधा का उपयोग कर सकते हैं ।

आंशिक वर्ग का परिचय

C # (या OOP) में प्रोग्रामिंग करते हुए, हम एक वर्ग की परिभाषा को दो या अधिक स्रोत फ़ाइलों में विभाजित कर सकते हैं। स्रोत फ़ाइलों में वर्ग की परिभाषा का एक खंड होता है, और सभी भागों को संयुक्त किया जाता है जब आवेदन संकलित किया जाता है। वर्ग परिभाषा को विभाजित करने के लिए, हमें partialकीवर्ड का उपयोग करने की आवश्यकता है ।

उदाहरण 1:

हमारे पास एक प्रोजेक्ट है जिसका नाम HeightWeightInfoऊंचाई और वजन है।

हमारे पास एक फ़ाइल है जिसका नाम File1.csआंशिक वर्ग है जिसका नाम रिकॉर्ड है। इसके दो पूर्णांक चर h & w और एक विधि / रचनाकार है जिसका नाम Record है जो h & w के मान निर्दिष्ट कर रहा है।

 namespace HeightWeightInfo ( class File1 ( ) public partial class Record ( private int h; private int w; public Record(int h, int w) ( this.h = h; this.w = w; ) ) )

यहाँ एक और फ़ाइल है जिसका नाम File2.cs है जो एक ही आंशिक वर्ग रिकॉर्ड के साथ है जिसमें केवल विधि PrintRecord है। यह विधि एच एंड डब्ल्यू के मूल्यों को प्रदर्शित करेगी।

 namespace HeightWeightInfo ( class File2 ( ) public partial class Record ( public void PrintRecord() ( Console.WriteLine("Height:"+ h); Console.WriteLine("Weight:"+ w); ) ) )

अब हम परियोजना की मुख्य विधि देख सकते हैं:

 namespace HeightWeightInfo ( class Program ( static void Main(string() args) ( Record myRecord = new Record(10, 15); myRecord.PrintRecord(); Console.ReadLine(); ) ) )

यहाँ हमारे पास myRecord के रूप में क्लास रिकॉर्ड की वस्तु है जो पैरामीटर मानों को क्रमशः 10 और 15 के रूप में एच और डब्ल्यू में परिभाषित विधि से पारित कर रहा है File1.cs

विधि PrintRecord को ऑब्जेक्ट myRecord द्वारा कहा जाता है जिसे में परिभाषित किया गया है File2.cs

इससे पता चलता है कि partialकीवर्ड एकल वर्ग के रूप में काम करने के लिए विभिन्न फाइलों में परिभाषित एक वर्ग की सभी विशेषताओं को संयोजित करने में मदद करता है।

वे स्थान जहाँ partialकक्षा का उपयोग किया जा सकता है:

  1. एक से अधिक डेवलपर वाली बड़ी परियोजनाओं पर काम करते समय, यह डेवलपर्स को एक साथ एक ही कक्षा में काम करने में मदद करता है।
  2. कोड को फिर से बनाया जा सकता है या स्रोत फ़ाइलों को फिर से बनाए बिना वर्ग में संशोधित किया जा सकता है जो स्वचालित रूप से आईडीई (यानी विज़ुअल स्टूडियो) द्वारा उत्पन्न होते हैं।

आंशिक वर्ग के बारे में याद रखने वाली बातें

partialनिर्दिष्ट कीवर्ड उस वर्ग के अन्य भागों नाम स्थान में परिभाषित किया जा सकता है। यदि हम कक्षा को आंशिक बनाने का प्रयास कर रहे हैं तो आंशिक खोजशब्द का उपयोग करना अनिवार्य है। वर्ग के सभी भाग समान नामस्थान में होने चाहिए और अंतिम प्रकार बनाने के लिए संकलन समय पर उपलब्ध होने चाहिए। सभी भागों में एक ही एक्सेस संशोधक होना चाहिए, अर्थात निजी, सार्वजनिक, या इसी तरह।

  • यदि किसी भाग को सार घोषित किया जाता है, तो पूरे प्रकार को सार माना जाता है।
  • यदि किसी भाग को सील घोषित किया जाता है, तो पूरे प्रकार को सील माना जाता है।
  • यदि कोई भाग आधार प्रकार की घोषणा करता है, तो पूरा प्रकार उस वर्ग को विरासत में मिलता है।
  • आंशिक परिभाषा में घोषित किसी भी वर्ग के सदस्य अन्य सभी भागों के लिए उपलब्ध हैं।
  • एक आंशिक वर्ग के सभी भाग समान नामस्थान में होने चाहिए।

** नोट:partial संशोधक प्रतिनिधि या गणन घोषणाओं पर उपलब्ध नहीं है

आंशिक तरीकों का परिचय

एक आंशिक वर्ग में एक आंशिक विधि हो सकती है। कक्षा के एक भाग में विधि के हस्ताक्षर होते हैं। एक वैकल्पिक कार्यान्वयन को उसी भाग या किसी अन्य भाग में परिभाषित किया जा सकता है। यदि कार्यान्वयन की आपूर्ति नहीं की जाती है, तो संकलन समय पर विधि और सभी कॉल हटा दिए जाते हैं।

उदाहरण 2:

चलो एक आंशिक वर्ग के Carरूप में परिभाषित करते हैं, file1.csजिसमें तीन तरीके हैं InitializeCar (), BuildRim () और BuildWheels ()। उन तरीकों में से, InitializeCar के रूप में परिभाषित किया गया है partial

 public partial class Car ( partial void InitializeCar(); public void BuildRim() ( ) public void BuildWheels() ( ) )

और हमारे पास एक और फाइल है, जिसका नाम file2.csदो तरीके BuildEngine और InitializeCar है। आरंभिक विधि आंशिक विधि है जिसे में भी परिभाषित किया गया है file1.cs

 public partial class Car ( public void BuildEngine() ( ) partial void InitializeCar() ( string str = "Car"; ) )

एक आंशिक विधि घोषणा में दो भाग होते हैं:

  1. में के रूप में परिभाषा file1.cs
  2. में के रूप में कार्यान्वयन file2.cs

वे आंशिक वर्ग के अलग-अलग हिस्सों में या एक ही हिस्से में हो सकते हैं।

आंशिक विधि के बारे में याद रखने योग्य बातें

  • partial कीवर्ड।
  • वापसी प्रकार void
  • स्पष्ट रूप से private
  • और नहीं हो सकता virtual

दिलचस्प लेख...