सी # ट्यूटोरियल: बुनियादी बातों को आप मास्टर सी # करने की आवश्यकता है



C # ट्यूटोरियल का यह लेख आपको बेहतर समझ के लिए वास्तविक समय के उदाहरणों के साथ C # fundementals पर एक विस्तृत ज्ञान के साथ मदद करेगा।

C # सभी उद्देश्यपूर्ण है और वर्ष 2000 में Microsoft कॉर्पोरेशन द्वारा जावा के लिए एक घातक प्रतियोगी के रूप में विकसित की गई मजबूत प्रोग्रामिंग भाषा है। यह सबसे लोकप्रिय और एक वर्चस्व वाली प्रोग्रामिंग भाषा है जब यह वेब विकास के साथ-साथ डेस्कटॉप अनुप्रयोग विकास की बात आती है।

इस C # ट्यूटोरियल में, हम निम्नलिखित अवधारणाओं को सीखेंगे।





सी # मूल बातें

C # प्रोग्रामिंग लैंग्वेज का परिचय

90 के दशक की शुरुआत में, जावा वेब विकास, डेस्कटॉप अनुप्रयोग विकास और कई अन्य क्षेत्रों के लिए अग्रणी प्रोग्रामिंग भाषा थी। Microsoft कई उन्नत सुविधाओं के साथ एक प्रतियोगी के साथ आना चाहता था जो जावा को बहुत पीछे छोड़ सकता है।



C#-Tutorial-hejlsberg_bio

यह वर्ष 2000 में था, एंडर्स हेजेल्सबर्ग और उनकी Microsoft टीम C # के विचार से लोकप्रिय हुई जिसे C-Sharp कहा जाता है। इस पहल को अंतर्राष्ट्रीय मानक संगठन द्वारा अनुमोदित किया गया था (MAJOR) और यूरोपीय कंप्यूटर निर्माता संघ (ईसीएमए)। और अंत में, C # सॉफ्टवेयर विकास की दुनिया में प्रवेश करता है।

सी # प्रोग्रामिंग भाषा की विशेषताएं



  • ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग लैंग्वेज

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग दृष्टिकोण वह है जो प्रोग्रामिंग भाषा को विकसित करने और बनाए रखने के लिए C # शार्प को सबसे अधिक प्रोग्रामर-फ्रेंडली और आसान बनाता है।

  • टाइप-सेफ लैंग्वेज

टाइप-सेफ का अर्थ यह है कि कंपाइलर को केवल उस मेमोरी लोकेशन तक पहुंच दी जाएगी जिसे निष्पादित करने की अनुमति है। यह सुविधा कोड सुरक्षा को एक घातीय स्तर तक सुधारती है।

  • अंतर

इंटरऑपरेबिलिटी की सुविधा C # को सब कुछ करने के लिए पर्याप्त रूप से सक्षम बनाती है जो C ++ के मूल निवासी है और अधिक कुशल तरीके से जो कि ++ ++ को बेहतर बना सकता है।

  • रिच लाइब्रेरी

C # इन-बिल्ट लाइब्रेरीज़ की कई संख्याओं तक पहुँच प्रदान करता है जो विकास प्रक्रिया में लगने वाले समय को कम करने के लिए प्रीप्रोग्राम्ड फ़ंक्शंस प्रदान करती हैं।

  • स्केलेबल और अपडेट करने योग्य

C # को अन्य प्रोग्रामिंग भाषाओं में श्रेष्ठ बनाया गया। इसलिए, यह हमेशा अपडेट के लिए खुला रहता है और यह अपनी विशेषताओं के साथ खुद को अत्यधिक स्केलेबल रखता है।

  • घटक उन्मुख

Microsoft के डेवलपर्स ने C # को विकसित करने के लिए घटक-आधारित दृष्टिकोण का उपयोग किया। C # अत्यधिक स्केलेबल और अद्यतन रखने के लिए यह सबसे प्रमुख विकास पद्धति है।

  • संरचित भाषा

संरचित प्रोग्रामिंग दृष्टिकोण को सॉफ्टवेयर विकास जीवन-चक्र के दौरान पसंद किया जाता है क्योंकि प्रक्रिया-उन्मुख प्रोग्रामिंग दृष्टिकोण की तुलना में सॉफ्टवेयर को संकलित करना और तैनात करना आसान हो जाता है।

  • तेज

C ++ और अन्य प्रोग्रामिंग भाषाओं की तुलना में C # प्रोग्रामिंग का संकलन और निष्पादन में तेज होना है।

स्थापना

यह सिद्ध है कि माइक्रोसॉफ्ट विजुअल स्टूडियो सी # प्रोग्रामिंग के लिए कक्षा संपादक में सबसे अच्छा है। हम नीचे दिए गए चरणों का पालन करके अपने C # प्रोग्राम को निष्पादित करने के लिए Microsoft Visual Studio को स्थापित और सेट करेंगे:

स्टेप 1 : Microsoft Visual Studio डाउनलोड करें

के लिए Google विजुअल स्टूडियो का नवीनतम संस्करण और डाउनलोड करें इंस्टॉल अपने स्थानीय सिस्टम में फ़ाइल करें और फिर Daud इंस्टॉलर फ़ाइल एक के रूप में प्रशासक।

चरण 2: .NET डेस्कटॉप डेवलपमेंट पैकेज का चयन करें

एक बार जब आप इंस्टॉलर चलाते हैं, तो विजुअल स्टूडियो एडिटर आपके स्थानीय सिस्टम में सफलतापूर्वक डाउनलोड हो जाएगा, बाद में आपके डेस्कटॉप स्क्रीन पर एक डायलॉग बॉक्स प्रदर्शित किया जाएगा जिसमें foe a पूछेंगे विशेष पैकेज आपको अपने सिस्टम में जरूरत है। यहां, आपको चयन करने की आवश्यकता है .NET डेस्कटॉप डेवलपमेंट पैकेज।

चरण 3: सेट सी # पर्यावरण

एक बार अपने पैकेज के लिए .NET विकास डाउनलोड किए जाते हैं, फिर आपकी स्क्रीन पर एक और डायलॉग बॉक्स प्रदर्शित होगा, जिसे आप जिस पर्यावरण के लिए देख रहे हैं, उसके लिए पूछें। यहां, आपको करने की आवश्यकता है C # के लिए वातावरण का चयन करें।

चरण 4: अपना पहला प्रोजेक्ट बनाएं

एक बार माहौल सेट हो जाने के बाद, आप सभी जाने के लिए अच्छे हैं। अपना Visual Studio प्रारंभ करें और चुनें नया प्रोजेक्ट बनाएं प्रदर्शित संवाद बॉक्स में विकल्प।

आपको अगले संवाद बॉक्स पर पुनर्निर्देशित किया जाएगा और वहां आपको क्लास लाइब्रेरी का चयन करना होगा .NET मानक जैसा कि नीचे दिया गया है।

अगले संवाद बॉक्स में, आपसे पूछा जाएगा अपने प्रोजेक्ट को कॉन्फ़िगर करें । इसे कॉन्फ़िगर करें और अब आप संपादक में हैं। अपना पहला कार्यक्रम लिखें और Daud यह। आउटपुट सफलतापूर्वक प्रदर्शित किया जाएगा सही कमाण्ड।

सिस्टम क्लास Edureka {static void Main (string [] args) {Console.WriteLine ('Welcome to Edureka !, हैप्पी लर्निंग ..!')} का उपयोग करके।

// आउटपुट:

आइए हम अपने पहले C # प्रोग्राम को निष्पादित करें।

सी # कार्यक्रम संरचना

अब जब हमने अपना पहला C # प्रोग्राम निष्पादित कर लिया है, तो आइए इसकी संरचना को विस्तार से समझते हैं। एक साधारण C # प्रोग्राम के निम्नलिखित भाग होते हैं।

सिस्टम नामस्थान ConsoleApplication1 {public class Edureka {public static void Main (string [] args) {Console.WriteLine ('Welcome to Edureka !, Happy Learning ..!')}} का उपयोग कर।

// आउटपुट:

Edureka में आपका स्वागत है!, हैप्पी लर्निंग ..!

  • वर्ग: वर्ग को आम तौर पर एक के रूप में परिभाषित किया जा सकता है कीवर्ड इसका उपयोग C # प्रोग्राम में एक क्लास को परिभाषित करने के लिए किया जाता है।
  • एडुर्का: का नाम है कक्षा। कक्षा को अक्सर एक खाका माना जाता है जो वर्ग से संबंधित सदस्यों और विधियों को संग्रहीत करता है।
  • मुख्य: मूल रूप से है प्राथमिक विधि पूरे सी # प्रोग्राम में, यह प्रोग्राम में प्रवेश के लिए नियंत्रण के लिए प्रवेश द्वार के रूप में कार्य करता है। कार्यक्रम के किसी अन्य तरीके को निष्पादित करने से पहले इसे निष्पादित किया जाता है।
  • शून्य: कोड का यह सेगमेंट निर्दिष्ट है वापसी प्रकार विधि का। यह शून्य के अलावा कोई भी डेटाटाइप हो सकता है। शून्य का अर्थ है कि विधि में कोई डेटा नहीं है जिससे वह वापस आ रहा है।
  • स्थिर: यह है एक कीवर्ड जो कहता है कि घोषित किए गए डेटा सदस्य स्थिर हैं और घोषित सदस्यों को एक समर्पित मेमोरी आवंटित की गई है।
  • स्ट्रिंग [] args: यह कमांड लाइन के तर्कों से मिलता-जुलता है जिसका उपयोग हम अपने प्रोग्राम में करते हैं। जब हम अपने कार्यक्रम को निष्पादित करते हैं, तो हम मूल रूप से कुछ पास करते हैं तर्क, जो इस कथन के कारण कार्यक्रम द्वारा स्वीकार किया जाएगा।
  • System.Console.WriteLine ('आपका स्वागत है एडुरेका में!, हैप्पी लर्निंग ..!' यहाँ, प्रणाली है नाम स्थान। सांत्वनाक्या वह श्रेणी उल्लिखित हैसिस्टम नामस्थान में। द पंक्ति लिखो() है किस्थिरतकनीकसांत्वना कावह श्रेणी जिसे लिखने के लिए नियोजित किया जाता हैकंसोल पर पाठ।

अब, हम C # में उपलब्ध डेटाटिप्स सीखते हैं।

जानकारी का प्रकार

C # में डेटाटिप्स को तीन श्रेणियों में विभाजित किया गया है, नीचे वर्णित हैं।

मान डेटाटाइप्स

मान डेटाटाइप्स में स्थित हैं System.ValueType लाइब्रेरी और हमेशा सीधे एक्सेस के लिए तैयार हैं और वेरिएबल्स को सीधे एक विशेष मूल्य को सौंपा जा सकता है। मूल्य डेटाटिप्स को आगे दो प्रकारों में वर्गीकृत किया गया है जैसा कि नीचे दिखाया गया है:

  • पूर्वनिर्धारित डेटाटिप्स
  • उपयोगकर्ता-परिभाषित डेटाटाइप्स

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

उदाहरण:

int, फ्लोट, चार, शॉर्ट डबल, आदि

उपयोगकर्ता-निर्धारित डेटाटिप्स: ऐसी परिस्थितियाँ हैं, जहाँ हमें डेटाटाइप्स से अलग-अलग वैल्यूज़ को एक ही वेरिएबल में स्टोर करना पड़ सकता है। इन मामलों में, पूर्वनिर्धारित डेटाटिप्स अभी पर्याप्त नहीं है उपयोगकर्ता परिभाषित डेटाटाइप्स उपयोगकर्ता के लिए अनुकूलन योग्य डेटाटाइप्स की तरह हैं।

उदाहरण: संरचना, Enum

डाटा प्रकार आवंटित की गई मेमोरी की रेंज मेमोरी क्षमता
हस्ताक्षरित चार -128 से 127 1 बाइट
अचिन्हित वर्ण 0 से 127 1 बाइट
char -128 से 127 1 बाइट
अल्प हस्ताक्षर किए -32,768 से 32,767 2 बाइट्स
अहस्ताक्षरित छोटा 0 से 65,535 रु 2 बाइट्स
कम -32,768 से 32,767 2 बाइट्स
हस्ताक्षरित int -2,147,483,648 से -2,147,483,647 4 बाइट्स
अहस्ताक्षरित int 0 से 4,294,967,295 रु 4 बाइट्स
int -2,147,483,648 से -2,147,483,647 4 बाइट्स
लंबे समय तक हस्ताक्षर किए -9,223,372,036,854,775,808 से 9,223,372,036,854,775,807 8 बाइट्स
अहस्ताक्षरित लंबे 0 से 18,446,744,073,709,551,615 8 बाइट्स
लंबा -9,223,372,036,854,775,808 से 9,223,372,036,854,775,807 8 बाइट्स
तैरना 1.5 * 10-45 - 3.4 * 1038, (7-अंकीय परिशुद्धता) 4 बाइट्स
दोगुना 5.0 * 10-324 - 1.7 * 10308, (15-अंकीय परिशुद्धता) 8 बाइट्स
दशमलव -7.9 * 10-28 - 7.9 * 1028, (28 अंकों का सटीक) 16 बाइट्स


सूचक डेटाटाइप

पॉइंटर टाइप एक सरल डेटाटाइप है। सी में इसकी कार्यक्षमता पूरी तरह से पॉइंटर्स के समान है। इन्हें दूसरे पॉइंटर के पते को स्टोर करने के लिए डिज़ाइन किया गया है।

फ्लोट * ptr

संदर्भ डेटाटिप्स

नाम स्व-व्याख्यात्मक है। द संदर्भ डेटाटिप्स वास्तव में चर को संग्रहीत नहीं करते हैं, इसके बजाय, वे संदर्भ मान को उस विशेष चर में संग्रहीत करते हैं। दूसरे शब्दों में, वे वास्तविक चर का पता संग्रहीत करते हैं।

संदर्भ चर को तीन अलग-अलग प्रकारों में वर्गीकृत किया गया है जैसा कि नीचे वर्णित है:

  • वस्तु प्रकार

ऑब्जेक्ट डेटाटाइप में उपलब्ध है प्रणाली कक्षा।उदेश्यप्रकारहो सकता हैको सौंपाके मानअन्य प्रकार,संदर्भप्रकार, पूर्वनिर्धारित, उपयोगकर्ता परिभाषितप्रकार। लेकिन इससे पहलेअसाइनमेंटमूल्यों की आवश्यकता है प्रकार रूपांतरण।

object abc abc = 50 // इसे बॉक्सिंग कहा जाता है
  • गतिशील प्रकार

डायनामिक टाइप चर को लगभग सभी प्रकार के मूल्यों को संग्रहीत करने के लिए डिज़ाइन किया गया है। इसे डायनामिक टाइप कहा जाता है क्योंकि टाइप-वैल्यू की जाँच रन-टाइम में होती है

गतिशील x = 10
  • स्ट्रिंग प्रकार

स्ट्रिंग प्रकार में उपलब्ध है सिस्टम कक्षा। स्ट्रिंग प्रकार को स्ट्रिंग शाब्दिक रूप से संग्रहीत करने के लिए डिज़ाइन किया गया है। स्ट्रिंग लिटरल्स को दो रूपों में संग्रहीत किया जाता हैदो रूप

    • उद्धृत किया गया
    • @ लगाया गया।
स्ट्रिंग एस = 'एडुर्का'
  • @ लगाया गया स्ट्रिंग शाब्दिक की तरह दिखता है
@ 'एडुर्का'

अब हम चर को समझते हैं।

चर

चर स्मृति स्थान के लिए आवंटित नाम हैं जो उपयोगकर्ता द्वारा दिए गए कुछ डेटा को संग्रहीत करते हैं और यह डेटा चर नाम का उपयोग करके आसानी से सुलभ है। C # में पाँच प्रकार के चर उपलब्ध हैं

प्रकार उदाहरण
अमान्य अशक्त डेटा
बूलियन सही और गलत
पूर्ण करनेवाला इंट, चार, बाइट, शॉर्ट, लॉन्ग
तैरता है फ्लोट और डबल
दशमलव दशमलव

उदाहरण:

int a, b double x float p char abc

C # में चर घोषित करने के लिए नियमों का पालन

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

संचालक

एक ऑपरेटर को एक विशेष प्रतीक के रूप में परिभाषित किया जा सकता है जो कंप्यूटर को एक विशेष गणितीय प्रदर्शन करने के लिए समझाता है एक चर के सेट पर एक लॉजिकल ऑपरेशन है। C # में विभिन्न प्रकार के ऑपरेटर शामिल हैं जिनका उल्लेख नीचे दिया गया है।

  • अंकगणितीय आपरेटर
  • संबंधपरक संकारक
  • लॉजिकल ऑपरेटर्स
  • बिटवाइज ऑपरेटर्स
  • असाइनमेंट ऑपरेटर्स

अंकगणितीय आपरेटर

ऑपरेटर उदाहरण विवरण
+ ए + बी दो ऑपरेंड जोड़ता है
- ए - बी दो ऑपरेंड्स को प्रतिस्थापित करता है
* ए * बी गुणक दो ऑपरेंड
/ ए / बी दो ऑपरेंड को विभाजित करता है
% अ% ब शेष दो ऑपरेंड
++ A ++ वृद्धि ऑपरेशन
- सेवा मेरे- विकृति ऑपरेशन

संबंधपरक संकारक

ऑपरेटर उदाहरण विवरण
== ए == बी सच है, अगर दोनों ऑपरेंड समान हैं, तो एल्स फाल्स
! = ए! = बी सच है, अगर दोनों ऑपरेंड समान नहीं हैं, तो एल्स फाल्स
> ए> बी सच है, अगर ए ग्रेटर है, तो गलत है
< सेवा मेरे सच है, अगर बी ग्रेटर है, तो गलत है
> = ए> = बी सच है, अगर ए ग्रेटर या बराबर है, तो एल्स फाल्स
<= सेवा मेरे<= B सच है, आईडी बी ग्रेटर बराबर है, एल्स फाल्स

लॉजिकल ऑपरेटर्स

ऑपरेटर उदाहरण विवरण
&& A && बी सच है, अगर दोनों ऑपरेंड सच हैं, तो एल्स फाल्स
|| ए || बी सच है, अगर ऑपरेंड में से एक सच है, तो एल्स फाल्स
! ए ! बी ऑपरेंड की तार्किक स्थिति को उलट देता है

बिटवाइज ऑपरेटर्स

सेवा मेरे बी ए और बी ए | बी ए ^ बी
एक एक एक एक
एक एक एक
एक एक एक
ऑपरेटर उदाहरण विवरण
~ (~ ए) बाइनरी वन का पूरक ऑपरेटर एकात्मक है और इसमें 'फ़्लिपिंग' बिट्स का प्रभाव है।
<< सेवा मेरे<<2 बाइनरी लेफ्ट शिफ्ट ऑपरेटर। बाएं ऑपरेंड वैल्यू को दाएं ऑपरेंड द्वारा निर्दिष्ट बिट्स की संख्या से छोड़ दिया जाता है।
>> ए >> 2 बाइनरी राइट शिफ्ट ऑपरेटर। बाएं ऑपरेंड वैल्यू को दाएं ऑपरेंड द्वारा निर्दिष्ट बिट्स की संख्या से दाएं स्थानांतरित किया जाता है।

असाइनमेंट ऑपरेटर्स

ऑपरेटर उदाहरण विवरण
= = ए = बी + सी A = B + C, B + C A को सौंपा गया है
+ = ए + = बी A = A + B, A + B को A को सौंपा गया है
- = ए - = बी A = A-B, A-B को A को सौंपा गया है
* = ए - = बी A = A * B, A * B को A को सौंपा गया है
/ = ए / = बी ए = ए / बी, ए / बी ए को सौंपा गया है
% = अ% = ब A = A% B, A% B को A को सौंपा गया है
<<= सेवा मेरे<<= 2 वाम शिफ्ट और असाइनमेंट ऑपरेटर
>> = ए >> = 2 राइट शिफ्ट और असाइनमेंट ऑपरेटर
& = A & = 2 बिटवाइज़ और असाइनमेंट ऑपरेटर
^ = ए ^ = 2 बिटवाइज एक्सक्लूसिव और असाइनमेंट ऑपरेटर
| = ए! = २ बिटवाइज इनक्लूसिव एंड असाइनमेंट ऑपरेटर

लूप्स

सेवा मेरे पाश कथन का उपयोग किसी विशेष स्थिति के संतुष्ट होने तक बार-बार बयानों के ब्लॉक को निष्पादित करने के लिए किया जाता है। C # भाषा में निम्न लूप कथन शामिल हैं।

  • पाश के लिए
  • घुमाव के दौरान
  • लूप करते समय

पाश के लिए

पाश के लिए किसी विशेष कोड खंड को कई बार निष्पादित करने के लिए उपयोग किया जाता है जब तक कि दी गई स्थिति संतुष्ट नहीं होती है।

वाक्य - विन्यास

(आरंभीकरण स्थिति वृद्धि / गिरावट) के लिए {// कोड खंड}

फ़्लोचार्ट:

उदाहरण:

सिस्टम सार्वजनिक वर्ग का उपयोग करते हुए ForExample {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {for (int i = 1 i)<= 5 i++) { Console.WriteLine(i) } } } 

// आउटपुट:

एक



घुमाव के दौरान

घुमाव के दौरान किसी विशिष्ट स्थिति के संतुष्ट होने तक कई संख्याओं के लिए एक कोड सेगमेंट निष्पादित करने के लिए उपयोग किया जाता है।

वाक्य - विन्यास

जबकि (स्थिति) {// कोड निष्पादित किया जाना है}

फ़्लोचार्ट:

उदाहरण:

सिस्टम नेमस्पेस लूप्स का उपयोग {क्लास प्रोग्राम {स्टेटिक शून्य मेन (स्ट्रिंग [] आर्ग्स) {int x = 5 जबकि x<= 10) { Console.WriteLine('The value of a: {0}', x) x++ } Console.ReadLine() } } } 

// आउटपुट:

A: 5 का मान
A: 6 का मान
A: 7 का मान
A: 8 का मान
A: 9 का मान
A: 10 का मान

लूप करते समय

जबकि लूप पूरी तरह से लूप के समान है, लेकिन केवल अंतर यह है कि लूप के अंत में स्थिति रखी गई है। इसलिए, लूप को कम से कम एक बार निष्पादित किया जाता है।

वाक्य - विन्यास

do (// कोड निष्पादित किया जाना है) जबकि (स्थिति)

फ़्लोचार्ट:

उदाहरण:

सिस्टम नामस्थान Edureka {class DoWhileLoop {public static void Main (string [] args) {int i = 1, n = 5, product do {product = n * i Console.WriteLine ('{0} * {1} = {{} का उपयोग करके) 2} ', n, i, उत्पाद) i ++} जबकि (i)<= 10) } } } 

// आउटपुट:

५ * १ = ५
५ * २ = १०
५ * ३ = १५
५ * ४ = २०
५ * ५ = २५
५ * ६ = ३०
५ * 35 = ३५
५ * 40 = ४०
५ * ९ = ४५
५ * १० = ५०

सशर्त

सशर्त बयान निष्पादित करने के लिए उपयोग किया जाता है बयान या का समूह बयान कुछ शर्त के आधार पर। अगर द स्थिति तब सच है सी # बयान अन्यथा अगले निष्पादित किया जाता है बयान निष्पादित किया जाएगा।

C ++ भाषा में विभिन्न प्रकार के सशर्त विवरण निम्नानुसार हैं:

  1. अगर बयान
  2. अगर-एल्स बयान
  3. नेस्टेड इफ-स्टेटमेंट
  4. अगर-अगर आई तो सीढ़ी
  5. स्विच स्टेटमेंट

अगर बयान

द सिंगल अगर C # भाषा में कथन का उपयोग कोड को निष्पादित करने के लिए किया जाता है यदि कोई शर्त सत्य है। इसे वन-वे सेलेक्शन स्टेटमेंट भी कहा जाता है।

वाक्य - विन्यास

अगर (बूलियन-एक्सप्रेशन) {// स्टेटमेंट निष्पादित किया गया तो बूलियन-एक्सप्रेशन सही है}

फ़्लोचार्ट:

उदाहरण:

सिस्टम नाम स्थान का उपयोग करना सशर्त {वर्ग ifStatement {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {int संख्या = 2 (संख्या)<5) { Console.WriteLine('{0} is less than 5', number) } Console.WriteLine('This statement is always executed.') } } } 

// आउटपुट:

2 5 से कम है
इस कथन को हमेशा निष्पादित किया जाता है।

अगर-एल्स बयान

यदि नहीं तो C भाषा में कथन का उपयोग कोड को निष्पादित करने के लिए किया जाता है यदि स्थिति सही या गलत है। इसे टू-वे सलेक्शन स्टेटमेंट भी कहा जाता है।

वाक्य - विन्यास

अगर (बूलियन-एक्सप्रेशन) {// स्टेटमेंट निष्पादित किया जाता है यदि बूलियन-एक्सप्रेशन सही है} तो {// स्टेटमेंट निष्पादित किया जाता है यदि बूलियन-एक्सप्रेशन गलत है}

फ़्लोचार्ट:

उदाहरण:

सिस्टम नाम स्थान का उपयोग करना सशर्त {वर्ग ifElseStatement {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {int संख्या = 12 if (संख्या<5) { Console.WriteLine('{0} is less than 5', number) } else { Console.WriteLine('{0} is greater than or equal to 5', number) } Console.WriteLine('This statement is always executed.') } } } 

// आउटपुट:

12 से अधिक या 5 के बराबर है
इस कथन को हमेशा निष्पादित किया जाता है।

नेस्टेड इफ-स्टेटमेंट

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

वाक्य - विन्यास

if (बूलियन-एक्सप्रेशन) {if (नेस्टेड-एक्सप्रेशन -1) {// कोड को निष्पादित किया जाना है} और {// कोड को निष्पादित किया जाना है}} और {{(नेस्टेड-एक्सप्रेशन -2) {// कोड निष्पादित किया जाए } और {// कोड निष्पादित किया जा रहा है}}

फ़्लोचार्ट:

उदाहरण:

सिस्टम नाम स्थान का उपयोग करना सशर्त {वर्ग नेस्टेड {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {int पहले = 7, दूसरा = -23, तीसरा = 13 अगर (पहला और gt दूसरा) {अगर (पहला

// आउटपुट:

13 सबसे बड़ा है

एल्स-अगर सीढ़ी

अगर-और-अगर कथन का उपयोग कई स्थितियों में से एक कोड को निष्पादित करने के लिए किया जाता है। इसे बहुपथ निर्णय कथन भी कहा जाता है। यह if..else स्टेटमेंट्स की एक श्रृंखला है जिसमें प्रत्येक यदि स्टेटमेंट के साथ जुड़ा हुआ है यदि स्टेटमेंट और लास्ट एक अन्य स्टेटमेंट होगा।

वाक्य - विन्यास

अगर (कंडिशन 1) {// कोड को निष्पादित किया जाना है अगर कंडीशन 1 सही है} तो (अगर कंडिशन 2) {// कोड को निष्पादित किया जाना है यदि कंडीशन 2 सत्य है} और यदि (कंडीशन 3) {// कोड को निष्पादित किया जाना है यदि कंडीशन 3 सत्य है} ... और यदि सभी स्थितियां झूठी हैं तो {// कोड निष्पादित किया जाएगा}

फ़्लोचार्ट:

उदाहरण:

सिस्टम वर्ग Edureka {सार्वजनिक स्थैतिक शून्य मेन (स्ट्रिंग [] args) {int i = 20 if (i == 10) Console.WriteLine ('i 10 10') का उपयोग कर रहा है अगर (i == 15) कंसोल .riteLine (') मैं 15 ') है, अगर (i == 20) कंसोल। क्राइटलाइन (' आई 20 है ') और कंसोल है। लाइटलाइन (' मैं मौजूद नहीं हूं ')}}

// आउटपुट:

मैं 20 का हूं

स्विच स्टेटमेंट

स्विच करें बयान एक लंबे समय के लिए एक विकल्प के रूप में कार्य करता है अगर और-अगर सीढ़ी जो मामलों की एक सूची का परीक्षण करने के लिए उपयोग किया जाता है। एक स्विच स्टेटमेंट में एक या एक से अधिक केस लेबल होते हैं जिन्हें स्विच एक्सप्रेशन के विरुद्ध जांचा जाता है। जब अभिव्यक्ति किसी मामले से मेल खाती है तो उस मामले से जुड़े बयानों को निष्पादित किया जाएगा।

वाक्य - विन्यास

स्विच (वैरिएबल / एक्सप्रेशन) {केस वैल्यू 1: // एक्सप्लेनेश (या वेरिएबल) = वैल्यू 1 ब्रेक केस वैल्यू 2: // एक्जीक्यूटिव निष्पादित किए गए स्टेटमेंट्स: // एक्सप्रेशंस (या वेरिएबल) = वैल्यू 1 ब्रेक ...… .. ... ... डिफ़ॉल्ट: // यदि कोई मामला मेल नहीं खाता, तो कथन निष्पादित किए जाते हैं}

फ़्लोचार्ट:

उदाहरण:

सिस्टम नामस्थान का उपयोग करना सशर्त {वर्ग स्विचकैस {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {char ch Console.WriteLine ('एक वर्णमाला दर्ज करें) ch = Convert.ToChar (Console.ReadLine ()) स्विच (Char.ToLower (ch) )) {केस 'a': Console.WriteLine ('Vowel') ब्रेक केस 'e': Console.WriteLine ('Vowel') ब्रेक केस 'i': Console.WriteLine ('Vowel') ब्रेक केस 'o': Console.WriteLine ('Vowel') ब्रेक केस 'u': Console.WriteLine ('Vowel') ब्रेक डिफ़ॉल्ट: Console.WriteLine ('एक स्वर नहीं') ब्रेक}}}}

// आउटपुट:

एक वर्णमाला दर्ज करें
है
स्वर

तार

स्ट्रिंग डेटाटाइप का सदस्य है सिस्टम कक्षा। यह चरित्र प्रकार के डेटा को संग्रहीत करने में सक्षम है। हम स्टिंग पर विभिन्न संचालन कर सकते हैं जैसे किसंघनन, तुलना, स्थानापन्न हो जाना, खोज, ट्रिम, प्रतिस्थापन और कई और।

स्ट्रिंग और स्ट्रिंग की सादृश्य

C # में स्ट्रिंग तथा तार समतुल्य हैं। स्ट्रिंग शब्द एक है कीवर्ड और के रूप में कार्य करता है सिस्टम कक्षा। हम स्ट्रिंग्स को घोषित करने के लिए या तो संस्करणों का उपयोग कर सकते हैं।

वाक्य - विन्यास:

स्ट्रिंग s1 = 'एडुर्का' // स्ट्रिंग कीवर्ड का उपयोग करके स्ट्रिंग बनाना स्ट्रिंग S2 = 'हैप्पी लर्निंग' // स्ट्रिंग का उपयोग करके स्ट्रिंग बनाना

उदाहरण:

सिस्टम पब्लिक क्लास StringExample {public static void Main (string [] args) {string s1 = 'Edureka' char [] ch = {'C', 's', 'h', 'a', 'r', '' p ',' ',' t ',' u ',' t ',' o ',' r ',' i ',' a ',' l '} string s2 = new string (ch) Console.WriteLine ( s1) Console.WriteLine (s2)}}

// आउटपुट:

Edureka
Csharp ट्यूटोरियल

स्ट्रिंग विधि सी # में

तरीका विवरण
क्लोन () स्ट्रिंग के इस उदाहरण का संदर्भ देने के लिए उपयोग किया जाता है।
तुलना करें (स्ट्रिंग, स्ट्रिंग) दो निर्दिष्ट स्ट्रिंग वस्तुओं की तुलना करने के लिए उपयोग किया जाता है।
कॉनटैट (स्ट्रिंग, स्ट्रिंग) स्ट्रिंग के निर्दिष्ट दो उदाहरण।
शामिल हैं (स्ट्रिंग) एक निर्दिष्ट उप-स्ट्रिंग को इंगित करने वाला मान लौटाएं
कॉपी (स्ट्रिंग) उसी मूल्य के साथ स्ट्रिंग का एक नया उदाहरण बनाने के लिए उपयोग किया जाता है
CopyTo (इंट, चार [], इंट, इंट) एक निर्दिष्ट स्थिति से पात्रों की प्रतिलिपि बनाता है
बराबर (स्ट्रिंग, स्ट्रिंग) निर्धारित करता है कि दो स्ट्रिंग वस्तुओं का एक ही मूल्य है।
प्रारूप (स्ट्रिंग, ऑब्जेक्ट) एक निर्दिष्ट स्ट्रिंग में एक या अधिक प्रारूप आइटम बदलें
IndexOf (स्ट्रिंग) पहली घटना के शून्य-आधारित सूचकांक की रिपोर्ट करता है
सम्मिलित करें (Int32, स्ट्रिंग) एक नया स्ट्रिंग लौटाता है जिसमें एक इंडेक्स पर एक स्ट्रिंग डाली जाती है।
शामिल है (स्ट्रिंग) इंगित करता है कि यह स्ट्रिंग यूनिकोड सामान्यीकरण फॉर्म सी में है।
IsNullOrEmpty (स्ट्रिंग) इंगित करता है कि निर्दिष्ट स्ट्रिंग शून्य या रिक्त स्ट्रिंग है।
IsNullOrWhiteSpace (स्ट्रिंग) इंगित करने के लिए उपयोग किया जाता है कि क्या एक निर्दिष्ट स्ट्रिंग शून्य है, खाली है,
सम्मिलित हों (स्ट्रिंग, स्ट्रिंग []) एक स्ट्रिंग सरणी के सभी तत्वों को संक्षिप्त करने के लिए उपयोग किया जाता है
LastIndexOf (चार) अंतिम वर्ण के शून्य-आधारित सूचकांक स्थिति की रिपोर्ट करता है
LastIndexOfAny (चार []) अंतिम वर्ण के शून्य-आधारित सूचकांक स्थिति की रिपोर्ट करता है
निकालें (Int32) एक नया तार लौटाता है जिसमें सभी पात्र हैं
बदलें (स्ट्रिंग, स्ट्रिंग) एक नया स्ट्रिंग लौटाता है जिसमें एक स्ट्रिंग की सभी घटनाएं होती हैं
विभाजन (चार []) यह एक स्ट्रिंग को सब्सट्रिंग में विभाजित करने के लिए उपयोग किया जाता है
स्टार्टस्विथ (स्ट्रिंग) इसका उपयोग यह जांचने के लिए किया जाता है कि क्या इस स्ट्रिंग की शुरुआत है
पदार्थ (Int32) यह इस उदाहरण से एक सबस्ट्रिंग को पुनः प्राप्त करने के लिए उपयोग किया जाता है।
ToCharArray () इस उदाहरण के पात्रों को एक यूनिकोड सरणी में कॉपी करता है।
तार() इसका उपयोग स्ट्रिंग के उदाहरण को वापस करने के लिए किया जाता है।
ट्रिम () तार बांधता है


ऐरे करता है

अन्य प्रोग्रामिंग भाषाओं के समान, C # में सरणियाँ हैं। Arrays सरल डेटा संरचनाएं हैं जो एक सन्निहित स्मृति स्थान में तत्वों के समान डेटाटाइप को स्टोर करने के लिए डिज़ाइन की गई हैं।

C # निम्नलिखित सरणी प्रकारों का समर्थन करता है।

  • एकल आयामी सरणी
  • बहुआयामी सरणी
  • दांतेदार ऐरे

एकल आयामी सरणी

एकल आयामी सरणी एक पंक्ति के रूप में तत्वों को संग्रहीत करती है।

वाक्य - विन्यास

int [] गिरफ्तारी = नया int [5] // सरणी बनाना

उदाहरण:

सिस्टम पब्लिक क्लास ArrayExample {public static void Main (string [] args) {int [] arr = new int [5] arrest [0] = 10 arrest [1] = 20 arrest [2] = 30 arrest [3] = का उपयोग करके 40 गिरफ्तार [४] = ५० के लिए (इंट i = ० i) 

// आउटपुट:

१०
बीस
३०
४०
पचास

बहुआयामी सरणी

बहुआयामी ऐरे कई आयामों जैसे मैट्रिक्स और क्यूब आदि के रूप में तत्वों को संग्रहीत करता है।

वाक्य - विन्यास

int val = [२,३]

उदाहरण:

सिस्टम नामस्थान ArrayApplication {class MyArray {static void Main (string [] args) {int [,] a = नया int [5, 2] {{0, 0}, {1, 2}, {2, 4}, का उपयोग करते हुए। {3, 6}, {4, 8}} int i, j for (i = 0 i)<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0},{1}] = {2}', i, j, a[i, j]) } } Console.ReadKey() } } } 

// आउटपुट:

एक [0,0] = 0
एक [0,1] = 0
एक [1,0] = 1
[a 1,1] = २
[a 2,0] = २
एक [2,1] = 4
[३,०] = ३
[३,१] = ६
[[४,०] = ४
[[४,१] = =

दांतेदार ऐरे

दांतेदार सरणी केवल सारणियों का एक सरणी है।

उदाहरण:

सिस्टम नामस्थान ArrayApplication {class MyArray {static void Main (string [] args) {int [] [] a = नया int [] [] {नया int [] {0,0}, नया int [] 1,2] }, नया int [] {2,4}, नया int [] {3, 6}, नया int [] {4, 8}} int i, j for (i = 0 i)<5 i++) { for (j = 0 j < 2 j++) { Console.WriteLine('a[{0}][{1}] = {2}', i, j, a[i][j]) } } Console.ReadKey() } } } 

// आउटपुट:

एक [०] [०] = ०
एक [०] [१] = ०
एक [१] [०] = १
[१] [१] = २
एक [२] [०] = २
एक [२] [१] = ४
[३] [०] = ३
[३] [१] = ६
एक [४] [०] = ४
एक [४] [१] = 1

संग्रह

संग्रह को केवल वस्तुओं के एक समूह के रूप में माना जा सकता है ताकि एकत्र किए गए डेटा पर कुछ कार्यों को लागू किया जा सके। एक बार संभवतः एक संग्रह पर प्रदर्शन करने वाले संचालन हैं,

  • संग्रह वस्तु
  • अद्यतन वस्तु
  • ऑब्जेक्ट हटाएं
  • वस्तु प्राप्त करना
  • खोज वस्तु, और
  • वस्तु की तरह

संग्रह के प्रकार

संग्रह के साथ काम करने की तीन अलग-अलग संभावनाएं हैं। तीन नामस्थान नीचे दिए गए हैं:

  • प्रणाली कक्षाएं
  • प्रणाली कक्षाएं
  • प्रणाली कक्षाएं

System.Collections.Generic Class में निम्न वर्ग की किस्में हैं:

  • सूची
  • ढेर
  • कतार
  • लिंक्ड सूची
  • हैशसेट
  • सॉर्टसेटसेट
  • शब्दकोश
  • क्रमबद्धता
  • छाँटा हुआ

प्रणाली वर्गों को विरासत कक्षाएं माना जाता है। उनमें निम्न वर्ग शामिल हैं।

  • सारणी सूची
  • ढेर
  • कतार
  • हैश तालिका

प्रणाली कक्षाएंनेमस्पेस थ्रेड-सुरक्षित संचालन के लिए कक्षाएं प्रदान करता है। अब कई थ्रेड्स संग्रह आइटम तक पहुंचने के लिए कोई समस्या पैदा नहीं करेंगे। इसमें उपलब्ध कक्षाएं हैं,

  • अवरोधन
  • समवर्तीबाग
  • समवर्ती
  • समवर्ती क्यू
  • समवर्ती
  • विभाजन
  • विभाजन
  • आदेश देनेवाला

सूची

सूची में उपलब्ध डेटा संरचना के रूप में माना जाता है प्रणाली नाम स्थान। यह तत्वों को स्टोर और प्राप्त कर सकता है। सूची डुप्लिकेट तत्वों को संग्रहीत करने में सक्षम है।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new List () names.Add ('संध्या') names.Add ('Arun') names.Add ( 'प्रशाँत' नाम। एड। ('किरण') फॉरच (नामों में var नाम) {Console.WriteLine (नाम)}}}

// आउटपुट:

संध्या
अरुण
प्रशाँत
किरण

हैश सेट

सी # हैशसेटश्रेणी अक्सर आदी होती हैदुकान,दूर करनायाघटकों को पढ़ें। यहनहीं करताडुप्लिकेट स्टोर करेंअवयवयह आग्रह कियाउपयोग करने के लिए हैशसेट वर्गअगरतुम्हें मिल गया हैस्टोर करने के लिएपूरी तरह से विशिष्ट अवयव आईटी इस System.Collections.Generic namespace में पाया गया।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {var name = new HashSet () names.Add (il Sunil ’) के नाम ।dd (Amar Amar Amar) के नाम का उपयोग करते हुए। 'पुजारी ’) नाम। एड (' इमरान’) नाम। ए डी (k करन ’) फॉरच (नामों में var नाम) {Console.WriteLine (नाम)}}}

// आउटपुट:

सुनील
अमर
Pujari
इमरान
karan

क्रमबद्ध सेट

सी # सॉर्टेडसेटवर्ग अक्सर आदी होते हैंदुकान, हटाना या पढ़ो तत्व । यह आरोही क्रम और बनाए रखता हैनहीं करताडुप्लिकेट स्टोर करेंतत्वयह शीघ्र हैSortedSet का उपयोग करने के लिएवर्गअगरतुम्हें मिल गया हैस्टोर करने के लिए विशिष्ट अवयव और आरोही क्रम बनाए रखें।आईटी इसSystem.Collections.Generic namespace में पाया गया।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {var name = new SortedSet () names.Add (jay संजय ’) नाम .dd (ur Anuradha’) names.Add का उपयोग करके सिस्टम का उपयोग करना। Names प्रवीण ’) नाम। अड.ड (ve रवि’) नाम। अड ('काजोल ’) फॉरच (नामों में वर नाम) {Console.WriteLine (नाम)}}}

// आउटपुट:

अनुराधा
काजोल
प्रवीण
रवि
संजय

ढेर

ढेर एक सरल संग्रह है जो निम्नानुसार है धार या पहली बार अंतिम प्रक्रिया में, इसमें संग्रहीत तत्वों को संसाधित करते समय।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {Stack names = new Stack () names.Push ('Chandan') names.Push ('Pushja') नामों का उपयोग करके सिस्टम का उपयोग करें ।ush ( 'जेम्स') नाम। पश ('राजेश') नाम। पश ('कुमार') फॉरच (नामों में स्ट्रिंग नाम) {Console.WriteLine (नाम)} Console.WriteLine ('पीक एलिमेंट:' + +.Peek) () ) Console.WriteLine ('पॉप:' + names.Pop ()) Console.WriteLine ('पॉप, पीक तत्व के बाद:' + names.Peek ())}}

// आउटपुट:

कुमार
राजेश
जेम्स
पूजा करें
Chandan
पीक तत्व: कुमार
पॉप: कुमार
पॉप के बाद, पीक तत्व: राजेश

कतार

कतार पूरी तरह से स्टैक के समान है लेकिन एकमात्र अंतर यह है कि कतार निम्नलिखित है FIFO या इसमें संग्रहीत तत्वों को संसाधित करते समय पहला और पहला आउट सिद्धांत।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {Que name = new Queue () names.Enqueue ('Srujan') नाम .Enqueue ('Prajat') names.Enqueue ( 'जॉन') नाम.इन्केक्यू ('राजू') नाम.इन्केयू ('हरि') फॉरच (नामों में स्ट्रिंग नाम) {Console.WriteLine (नाम)} Console.WriteLine ('पीक तत्व:' + names.Peek) ) Console.WriteLine ('Dequeue:' + names.Dequeue ()) Console.WriteLine ('Dequeue, Peek तत्व के बाद:' + names.Peek ())}}

// आउटपुट:

सुरजन
Prajat
जॉन
भयंकर
दिन
पीक तत्व: सुरजन
Dequeue: सुरजन
Dequeue के बाद, पीक तत्व: प्रजात

लिंक्ड सूची

लिंक की गई सूची एक गतिशील मेमोरी संग्रह है। लिंक्ड सूची में तत्वों को ढेर से मेमोरी तक पहुंचने और तत्वों को उनके पते से लिंक करके निरंतर क्रम में संग्रहीत किया जाता है।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {var names = new LinkedList () names.AddLast ('रजत') name.AddLast ('अरुण') नामों का उपयोग करते हुए। 'प्रकाश ’) नाम। अडलस्ट (names जय’) नाम। एडफर्स्ट (i साई ’) फॉरच (नामों में var नाम) {Console.WriteLine (नाम)}}}

// आउटपुट:

साईं
सीमा
अरुण
प्रकाश
जय

शब्दकोश

शब्दकोश वर्गका उपयोग करता हैविचारहैशटेबल का। यह मूल्यों को संग्रहीत करता हैपरिसरकुंजी की। इसमें हैविशिष्टचांबियाँपूरी तरह से। द्वारासहायताकी,हम बस करेंगेखोज यातत्वों को हटा देंआईटी इसSystem.Collections.Generic namespace में पाया गया।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {Dictionary नाम = नया शब्दकोश () नाम.एडी ('1', 'शिवा') name.Add ('2') का उपयोग कर सिस्टम का उपयोग करना .A प्रसाद ’) नाम .dd ('3’,' प्रीतम ’) नाम .dd ('4’, .A रॉय ’) नाम .dd (' 5’, ash आकाश ’) foreach (नाम में KeyValuePair kv) {कंसोल। WriteLine (kv.Key + '' + kv.Value)}}}

// आउटपुट:

1 शिव
2 प्रसाद
3 Preetam
4 रॉय
आकाश

क्रमबद्ध शब्दकोश

क्रमबद्धता वर्गका उपयोग करता हैडिज़ाइनहैशटेबल का। यह मूल्यों को संग्रहीत करता हैविचारकुंजी की। इसमें हैविशिष्टचाबियाँ और पर चढ़ते क्रम को बनाए रखता हैविचारकुंजी की। द्वारासहायताकी,हम बस करेंगेखोज यातत्वों को हटा देंआईटी इसSystem.Collections.Generic namespace में पाया गया।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {Sortedlife के नाम = new SortedDictionary () नाम .dd ('1', 'Arun') 'name' .dd ('4') का उपयोग कर सिस्टम का उपयोग कर रहा है। .A विशाल ’) नाम .dd ('5’,' रमेश ’) नाम .dd ('3’, names विद्या ’) नाम .dd (' 2’, avi पल्लवी ’) फॉरच (नाम में KeyValuePair kv) {कंसोल। WriteLine (kv.Key + '' + kv.Value)}}}

// आउटपुट:

1 शिव
2 प्रसाद
3 Preetam
4 रॉय
५आकाश

क्रमबद्ध सूची

छाँटा हुआ हैa औरकुंजी / मूल्य जोड़े की सरणी। यह मूल्यों को संग्रहीत करता हैपरिसरकुंजी की। क्रमबद्ध करनेवालावर्गहोता हैविशिष्टचाबियाँ और पर चढ़ते क्रम को बनाए रखता हैपरिसरकुंजी की। द्वारासहायताकी,हम बस करने में सक्षम हैंखोज या निकालेंतत्वआईटी इसमें पाया प्रणाली नाम स्थान।

उदाहरण:

System.Collections.Generic public class Edureka {public static void Main (string [] args) {Sortedlife के नाम = new SortedDictionary () नाम .dd ('1', 'Arun') 'name' .dd ('4') का उपयोग कर सिस्टम का उपयोग कर रहा है। .A विशाल ’) नाम .dd ('5’,' रमेश ’) नाम .dd ('3’, names विद्या ’) नाम .dd (' 2’, avi पल्लवी ’) फॉरच (नाम में KeyValuePair kv) {कंसोल। WriteLine (kv.Key + '' + kv.Value)}}}

// आउटपुट:

1 अरुण
२ पल्लवी
३ विद्या
4 विशाल
५रमेश

संरचना

संरचना एक उपयोगकर्ता-परिभाषित डेटाटाइप है जिसे विभिन्न डेटाटाइप के कई तत्वों को संग्रहीत करने के लिए डिज़ाइन किया गया है। कीवर्ड का उपयोग करके संरचना को घोषित किया गया है संरचना।

उदाहरण:

सिस्टम स्ट्रक्चर बुक्स का उपयोग करना {पब्लिक स्ट्रिंग शीर्षक सार्वजनिक स्ट्रिंग लेखक सार्वजनिक स्ट्रिंग विषय सार्वजनिक int book_id} सार्वजनिक वर्ग Edureka {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] args) {पुस्तकें Book1 पुस्तकें Book2 Book1.title = 'C # प्रोग्रामिंग =' Book1.author = ' रामचंद्र कुमार 'Book1.subject =' C ++ प्रोग्रामिंग ट्यूटोरियल 'Book1.book_id = 95908978 Book2.title =' Telecom Billing 'Book2.author =' Karan 'Book2.subject =' Telecom Billing Tutorial 'Book2.book_id = 18674900 Console.WriteLine। 'पुस्तक 1 ​​शीर्षक: {0}', Book1.title) Console.WriteLine ('पुस्तक 1 ​​लेखक: {0}', Book1.author) Console.WriteLine ('पुस्तक 1 ​​विषय: {0}', Book1.subject) Console.WriteLine ('Book 1 book_id: {0}', Book1.book_id) Console.WriteLine ('पुस्तक 2 शीर्षक: {0}', Book2.title) Console.WriteLine ('पुस्तक 2 लेखक: {0}'), Book2.author) Console.WriteLine ('Book 2 विषय: {0}', Book2.subject) Console.WriteLine ('पुस्तक 2 book_id: {0}', Book2.book_id_ Console.ReadKey ()}}

// आउटपुट:

पुस्तक का शीर्षक: सी # प्रोग्रामिंग
पुस्तक 1 ​​लेखक: रामचंद्र कुमार
पुस्तक 1 ​​विषय: C ++ प्रोग्रामिंग ट्यूटोरियल
पुस्तक 1 ​​book_id: 95908978
पुस्तक 2 शीर्षक: दूरसंचार बिलिंग
पुस्तक 2 लेखक: करण
पुस्तक 2 विषय: दूरसंचार बिलिंग ट्यूटोरियल
पुस्तक 2 book_id: 18674900

कार्य

फ़ंक्शन को मुख्य कोड के कोड के रूप में परिभाषित किया गया है। फ़ंक्शन का उपयोग कोड ब्लॉक में निर्दिष्ट कथनों को निष्पादित करने के लिए किया जाता है। एक फ़ंक्शन में निम्नलिखित घटक होते हैं।

  • समारोह का नाम: यह एक विशिष्ट नाम है जिसका उपयोग फ़ंक्शन कॉल करने के लिए किया जाता है।
  • वापसी प्रकार: यह फ़ंक्शन रिटर्न मान के डेटा प्रकार को निर्दिष्ट करता है।
  • तन: इसमें निष्पादन योग्य कथन शामिल हैं।
  • एक्सेस स्पेसियर: यह एप्लिकेशन में फ़ंक्शन एक्सेसिबिलिटी को निर्दिष्ट करता है।
  • पैरामीटर: यह तर्कों की एक सूची है जिसे हम कॉल के दौरान फ़ंक्शन में पास कर सकते हैं।

वाक्य - विन्यास

फ़ंक्शन नाम () {// फ़ंक्शन बॉडी // रिटर्न स्टेटमेंट}

उदाहरण:

सिस्टम नाम स्थान का उपयोग कर रहा है। फ़ंक्शन {क्लास एडुरका {पब्लिक स्ट्रिंग शो (स्ट्रिंग संदेश) {कंसोल। वाइटलाइन () इनसाइड शो फंक्शन ’) रिटर्न मैसेज} स्टेटिक शून्य मेन (स्ट्रिंग [] आर्ग्स) {एडुर्का प्रोग्राम - एडवर्डका () स्ट्रिंग संदेश = प्रोग्राम .Show ('To Edureka') Console.WriteLine ('वेलकम + मैसेज)}}}

// आउटपुट:

इनसाइड शो फंक्शन
Edureka में आपका स्वागत है

कार्यों को 3 अलग-अलग तरीकों से निष्पादित किया जा सकता है:

  • मूल्य से कॉल करें
  • संदर्भ द्वारा कॉल करें
  • व्यास से बाहर

मूल्य से कॉल करें

C # में, मान -प्रकार पैरामीटरहैंवह गुजर गयाएक प्रतिकृतिके मूल मूल्य के लिएके बजाय कार्य करते हैंसंदर्भ। यहनहीं करतासंशोधित करेंपहला मूल्य। एकसंशोधन बनाया गयापारित हुआमान नहीं हैआयुविशेष मूल्यके अंदरनिम्न उदाहरण,हमें मिल गया हैउत्तीर्ण करनामान भरपुकार।

उदाहरण:

कैसे जावा में गतिरोध को रोकने के लिए
सिस्टम नाम स्थान का उपयोग करके CallByValue {class Edureka {public void Show (int val) {val * = val Console.WriteLine ('शो फंक्शन के अंदर का मान' + val)} स्टेटिक void मेन (स्ट्रिंग] [args) {int val = 50 Edureka program = new Edureka () Console.WriteLine ('फ़ंक्शन कॉल करने से पहले मान' + वैल) प्रोग्राम ।how (वैल) Console.WriteLine ('फ़ंक्शन कॉल करने के बाद मान' + वैल)}}}

// आउटपुट:

फ़ंक्शन को कॉल करने से पहले मूल्य 50
शो फंक्शन 2500 के अंदर का मूल्य
फ़ंक्शन 50 पर कॉल करने के बाद मान

संदर्भ द्वारा कॉल करें

संदर्भ विधि द्वारा कॉल में,सेवा मेरे संदर्भ संदर्भ-प्रकार के रूप में तर्क पास करने के लिए कीवर्ड। यह मूल मान की प्रति के बजाय फ़ंक्शन के तर्कों का संदर्भ देता है। पारित मूल्यों में परिवर्तन स्थायी हैं और संशोधित करें मूल चर मूल्य।

उदाहरण:

सिस्टम नामस्थान का उपयोग करके CallByReference {class Edureka {public void Show (Ref int val) {val * = val Console.WriteLine ('शो फंक्शन के अंदर का मान' + val)} स्टेटिक void मेन (स्ट्रिंग) [args) {int val = 50 Edureka program = new Edureka () Console.WriteLine ('फ़ंक्शन को कॉल करने से पहले मान' + val) प्रोग्राम .how (रेफ वैल) Console.WriteLine ('फ़ंक्शन कॉल करने के बाद मान' + val)}}}

// आउटपुट:

फ़ंक्शन को कॉल करने से पहले मूल्य 50
शो फंक्शन 2500 के अंदर का मूल्य
फ़ंक्शन 2500 पर कॉल करने के बाद मान

व्यास से बाहर

आउट पैरामीटरप्रदान करता है बाहर आउट-प्रकार के रूप में तर्क पास करने के लिए कीवर्ड। यह संदर्भ-प्रकार की तरह है, सिवाय इसके कि इसे पारित करने से पहले चर की आवश्यकता नहीं है। हमें उपयोग करना चाहिए बाहर आउट-प्रकार के रूप में तर्क पास करने के लिए कीवर्ड। यह उपयोगी है जब हम एक फ़ंक्शन को कई मान वापस करना चाहते हैं।

उदाहरण:

सिस्टम नेमस्पेस OutParameter {class Edureka {public void Show (out int val) {int square = 5 val = square val * = val} स्टेटिक शून्य मेन (स्ट्रिंग [] args) {int val = 50 edureka = नया edureka () का उपयोग करना Console.WriteLine ('वैरिएबल' + वैल 'प्रोग्राम से बाहर आने से पहले वैल्यू। शो (आउट वैल) Console.WriteLine (' वैल्यू आउट वेरिएबल '+ वैल' रिकॉल करने के बाद)}}

// आउटपुट:

चर 50 बाहर पारित करने से पहले मूल्य

मान25 चर से बाहर निकलने के बाद

अब हम ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग पर जाते हैं

वस्तु उन्मुख कार्यकर्म

वस्तु उन्मुख कार्यकर्म प्रणालीकी अवधारणा पर आधारित एक प्रोग्रामिंग प्रतिमान है वस्तुएं इसमें शामिल हैं डेटा सदस्य तथा विधियाँ उनसे संबंधित। ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग का प्राथमिक उद्देश्य कार्यक्रमों के लचीलेपन और स्थिरता को बढ़ाना है

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग की विशेषताएं:

  • यह प्रक्रिया के बजाय डेटा पर अधिक जोर देता है।
  • कार्यक्रमों को इस प्रकार वस्तुओं में विभाजित किया जाता है जिससे काम करना आसान हो जाता है।
  • डेटा संरचनाओं को इस तरह से डिज़ाइन किया गया है कि वे वस्तुओं को चिह्नित करते हैं।
  • कार्य जो कार्य करते हैं परकिसी ऑब्जेक्ट के डेटा को डेटा संरचना में एक साथ रखा जाता है।
  • डेटा छिपा हुआ है और बिना अनुमति के बाहरी कार्यों द्वारा पहुँचा नहीं जा सकता है।
  • वस्तुओं के बीच संचार कार्यों की सहायता से हो सकता है।
  • नया डेटा और फ़ंक्शंस जोड़ना आसान हो गया है।
  • प्रोग्राम डिजाइन में नीचे-अप दृष्टिकोण का पालन करता है।

ऑब्जेक्ट # ओरिएंटेड प्रतिमान C # में निम्नानुसार हैं

सी # में गणना

Enum या भी एक के रूप में कहा जाता है गणना C # में C # प्रोग्राम के संपूर्ण निष्पादन के दौरान उन्हें बदलने के बिना निरंतर मानों को संग्रहीत करने के लिए उपयोग किया जाता है। यहका उपयोग मौसम, दिन, महीने, आकार आदि जैसे नामांकित स्थिरांक के एक सेट को करने के लिए किया जाता है

उदाहरण:

सिस्टम पब्लिक क्लास EnumExample {public enum week {सोमवार, मंगलवार, बुधवार, गुरुवार, शुक्रवार, शनिवार, रविवार} का उपयोग करते हुए सार्वजनिक स्थैतिक शून्य मुख्य () {int x = (int) सप्ताह। सोमवार int y = (int) सप्ताह। हृदय कंसोल .WriteLine ('सोमवार = {0}', x) कंसोल। क्राइटलाइन ('शुक्रवार = {0}', y)}}

// आउटपुट:

सोमवार = ०
शुक्रवार = ४

ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग अप्रोच

प्रोग्रामिंग की ऑब्जेक्ट-ओरिएंटेड शैली नीचे दिए गए तरीकों का पालन करके प्राप्त की जा सकती है।

एनकैप्सुलेशन

एनकैप्सुलेशन गठबंधन करने के लिए एक विधि है विधियाँ उनके साथ डेटा सदस्य।

उदाहरण:

सिस्टम नामस्थान Edureka {class Rectangle {सार्वजनिक दोहरी लंबाई सार्वजनिक डबल चौड़ाई सार्वजनिक डबल गेटआरे () {वापसी लंबाई * चौड़ाई} सार्वजनिक शून्य प्रदर्शन () {Console.WriteLine ('लंबाई: {0}', लंबाई) Console.WriteLine (' चौड़ाई: {0} ', चौड़ाई) Console.WriteLine (' क्षेत्र: {0} ', GetArea ())} वर्ग ExecuteRectangle {स्थिर शून्य मुख्य (स्ट्रिंग [] args) {आयत r = नई आयत () r.length = 50 r.width = 35 r.Display () Console.ReadLine ()}}}

// आउटपुट:

लंबाई: 50
चौड़ाई: 35
क्षेत्र: 1750

अमूर्तता

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

उदाहरण:

सिस्टम पब्लिक एब्स्ट्रैक्ट क्लास शेप का उपयोग करना {public अमूर्त शून्य ड्रा ()} पब्लिक क्लास आयत: आकृति {पब्लिक ओवरराइड शून्य ड्रा () {Console.WriteLine ('ड्राइंग आयत ...')}} पब्लिक क्लास सर्कल: शेप / पब्लिक ओवरराइड शून्य ड्रा () {Console.WriteLine ('ड्राइंग सर्कल ...')}} सार्वजनिक वर्ग TestAbstract {सार्वजनिक स्थैतिक शून्य मुख्य () {आकृति ss = नया आयत () s.draw () s = नया सर्कल () s ()}}

// आउटपुट:

रेक्टेंगल ड्राइंग ...
ड्राइंग सर्कल ...

इंटरफेस

इंटरफेस पूरी तरह से अमूर्त के समान है। एक इंटरफ़ेस की कार्यक्षमता उपयोगकर्ता से महत्वहीन डेटा को छिपाने और उसे केवल आवश्यक डेटा प्रदान करने के लिए है।

उदाहरण:

सिस्टम पब्लिक इंटरफ़ेस का उपयोग करके ड्रा करने योग्य {शून्य ड्रा ()} सार्वजनिक वर्ग आयत: ड्रा करने योग्य {सार्वजनिक शून्य ड्रा () {Console.WriteLine ('ड्राइंग आयत ...')}} सार्वजनिक वर्ग सर्कल: ड्रा करने योग्य {सार्वजनिक शून्य ड्रा () {कंसोल .WriteLine ('ड्राइंग सर्कल ...')} सार्वजनिक वर्ग TestInterface {सार्वजनिक स्थैतिक शून्य मुख्य () {drawable dd = नया आयत () d.draw () d = नया सर्कल () d.draw (ओई}}}

// आउटपुट:

रेक्टेंगल ड्राइंग ...
ड्राइंग सर्कल ...

बहुरूपता

बहुरूपताका संयोजन है 'पाली' + 'रूप' जिसका अर्थ है कई रूप। यह एक ग्रीक शब्द है। इसका मतलब है कि कोड खंड कई रूपों को ले सकता है। हमारे पास दो प्रकार के बहुरूपता हैं।

  • संकलन समय बहुरूपता
  • रन टाइम पॉलिमोर्फिज्म

उदाहरण:

सिस्टम पब्लिक क्लास एनिमल {पब्लिक स्ट्रिंग कलर = 'व्हाइट'} पब्लिक क्लास डॉग का उपयोग करना: एनिमल {पब्लिक स्ट्रिंग कलर = 'ब्लैक'} पब्लिक क्लास टेस्टेडबेड {पब्लिक स्टैटिक शून्य मेन () {एनिमल डी = नया डॉग () कंसोल। d.color)}}

// आउटपुट:

सफेद

वंशानुक्रम

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

सिंगल लेवल इनहेरिटेंस के लिए उदाहरण

सिस्टम नामस्थान RectangleApplication {class Rectangle {संरक्षित डबल लंबाई संरक्षित डबल चौड़ाई सार्वजनिक आयत (डबल एल, डबल w) {लंबाई = l चौड़ाई = w} सार्वजनिक डबल गेटआरे () {वापसी लंबाई * चौड़ाई} सार्वजनिक शून्य प्रदर्शन () {कंसोल। WriteLine ('लंबाई: {0}', लंबाई) Console.WriteLine ('चौड़ाई: {0}', चौड़ाई) Console.WriteLine ('क्षेत्र: {0}', GetArea ())} वर्ग Tabletop: आयत {निजी डबल कॉस्ट पब्लिक टेबलटॉप (डबल एल, डबल डब्ल्यू): बेस (एल, डब्ल्यू) {} पब्लिक डबल गेटकॉस्ट () {डबल कॉस्ट कॉस्ट = गेटअरे () * 70 रिटर्न कॉस्ट} पब्लिक वॉयड डिस्प्ले () {बेस.डिसप्ले () कंसोल .WriteLine ('कॉस्ट: {0}', गेटकॉस्ट ())} क्लास एक्सेक्यूट रेक्टेंगल {स्टैटिक वोय्ड मेन (स्ट्रिंग [] आर्ग्स) {टेबलटॉप t = नया टेबलटॉप (4.5, 7.5) tisplay () Console.ReadLine () }}}

// आउटपुट:

लंबाई: 4.5
चौड़ाई: 7.5
क्षेत्र: 33.75
लागत: 2362.5

मल्टी लेवल इनहेरिटेंस का उदाहरण

सिस्टम नेमस्पेस इनहेरिटेंसऐप्लिकेशंस {क्लास शेप {पब्लिक वॉयड सेटविदथ (इंट डब्ल्यू) {चौड़ाई = डब्ल्यू} पब्लिक शून्य सेटहाइट (इंट एच) {हाइट = एच} संरक्षित इंट चौड़ाई प्रोटेक्ट इंट हाइट} पब्लिक पेंटकॉस्ट {इंट गेटकॉस्ट (इंट एरिया)} वर्ग आयत: आकृति, पेंटकॉस्ट {सार्वजनिक int getArea () {वापसी (चौड़ाई * ऊंचाई)} सार्वजनिक int getCost (इंट क्षेत्र) {वापसी क्षेत्र * 70}} वर्ग आयत परीक्षक {स्थिर शून्य मुख्य (स्ट्रिंग] [args) {आयत आयत = new Rectangle () int area Rect.setWidth (5) Rect.setHeight (7) क्षेत्र = Rect.getArea () Console.WriteLine ('कुल क्षेत्र: {0}', Rect.getArea ()) Console.WriteLine ('कुल) पेंट की लागत: $ {0} ', Rect.getCost (क्षेत्र)) Console.ReadKey ()}}}

// आउटपुट:

कुल क्षेत्रफल: 35
कुल पेंट की लागत: $ 2450

ओवरलोडिंग

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

सदस्य अधिभार

उदाहरण:

सिस्टम पब्लिक क्लास Edureka {public static int add (int a, int b) {return a + b} पब्लिक स्टेटिक int add (int a, int b, int c) {return a + b + c}} पब्लिक क्लास TestMemberOverloader {का उपयोग करके सार्वजनिक स्थैतिक शून्य मुख्य () {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12, 23, 25))}}

// आउटपुट:

३५
६०

विधि ओवरलोडिंग

उदाहरण:

सिस्टम पब्लिक क्लास Edureka {public static int add (int a, int b) {return a + b} पब्लिक स्टेटिक फ्लोट ऐड (float a, float b) {return a + b}} पब्लिक क्लास TestMemberOverloading का उपयोग करते हुए, इस पब्लिक स्टेटिक मेन को मेन ( ) {Console.WriteLine (Edureka.add (12, 23)) Console.WriteLine (Edureka.add (12.4f, 21.3f))}}

// आउटपुट:

३५
33.699997

ओवरराइडिंग

ओवरराइडिंग एक ऐसी स्थिति है, जहां बाल वर्ग उसी पद्धति को परिभाषित करता है जिसे माता-पिता भी परिभाषित कर रहे हैं। इसे एक छोटे से उदाहरण के माध्यम से समझते हैं।

उदाहरण:

सिस्टम पब्लिक क्लास Edureka {public virtual void eat () {Console.WriteLine ('Eating ’)}} का उपयोग करते हुए, पब्लिक क्लास डॉग: Edureka {public ओवरराइड void खाने () {Console.WriteLine (E Eating food’)}}} पब्लिक क्लास ओवरराइडिंग {सार्वजनिक स्थैतिक शून्य मुख्य () {कुत्ता d = नया कुत्ता () d.eat ()}}

// आउटपुट:

खाना खा रहा हूँ

नाम स्थान

नाम स्थान मूल रूप से कार्यक्रम में मौजूद कई वर्गों को संभालने के लिए उपयोग किया जाता है। नाम स्थान अलग-अलग तरीकों से उपलब्ध है।

  • सिस्टम। कंसोल: यहां ही प्रणाली नाम बन जाता है
  • एक नाम स्थान के वर्ग तक पहुंचने के लिए, हमें उपयोग करने की आवश्यकता है namepacename.classname।
  • हम उपयोग कर सकते हैं का उपयोग कर साथ ही कीवर्ड।

उदाहरण:

सिस्टम का उपयोग करते हुए पहले दूसरे नामस्थान का उपयोग करके प्रथम {सार्वजनिक वर्ग Edureka {public void sayW Welcome () {Console.WriteLine (To Welcome To Edureka ’)}}} नामस्थान दूसरा {public class Happy_Learning (सार्वजनिक शून्य कहे) () {Console.WriteLine (’) हैप्पी लर्निंग ')}}} पब्लिक क्लास नेमस्पेस {पब्लिक स्टेटिक वॉयस मेन () {एडुरेका h1 = नया एडुर्का () Happy_Learning w1 = नया हैप्पी_लर्निंग () h1.sayWelcome () w1 .sayWishes ()}}

// आउटपुट:

Edureka में आपका स्वागत है
हैप्पी लर्निंग

फ़ाइल संचालन

फ़ाइल संचालन C # में उपलब्ध निम्नानुसार हैं:

ऑपरेशन विवरण
बाइनरीरीडर एक बाइनरी स्ट्रीम से आदिम डेटा पढ़ता है।
बाइनरीवेयर बाइनरी प्रारूप में आदिम डेटा लिखता है।
बफर्डस्ट्रीम बाइट्स की एक धारा के लिए अस्थायी भंडारण।
निर्देशिका निर्देशिका संरचना में हेरफेर करने में मदद करता है।
DirectoryInfo निर्देशिकाओं पर संचालन करने के लिए उपयोग किया जाता है।
DriveInfo ड्राइव के लिए जानकारी प्रदान करता है।
फ़ाइल फाइलों में हेरफेर करने में मदद करता है।
फाइल के बारे में फ़ाइलों पर कार्रवाई करने के लिए उपयोग किया जाता है।
फ़ाइल धारा फ़ाइल में किसी भी स्थान से पढ़ने और लिखने के लिए उपयोग किया जाता है।
मेमोरीस्ट्रीम मेमोरी में संग्रहीत स्ट्रीम किए गए डेटा तक यादृच्छिक पहुंच के लिए उपयोग किया जाता है।
पथ पथ सूचना पर संचालन करता है।
स्ट्रीमरडर एक बाइट स्ट्रीम से वर्ण पढ़ने के लिए उपयोग किया जाता है।
StreamWriter एक धारा में वर्ण लिखने के लिए उपयोग किया जाता है।
स्ट्रिंगर एक स्ट्रिंग बफर से पढ़ने के लिए उपयोग किया जाता है।
स्ट्रिंगट्राइटर एक स्ट्रिंग बफर में लिखने के लिए उपयोग किया जाता है।

FileMode

FileMode एक एन्यूमरेटर है जो कई फ़ाइल खोलने के तरीकों को परिभाषित करता है। FileMode Enumerator के सदस्यों को निम्नानुसार वर्णित किया गया है:

  • परिशिष्ट: यह एक मौजूदा फ़ाइल खोलता है और फ़ाइल के अंत में कर्सर डालता है, या फ़ाइल मौजूद नहीं होने पर फ़ाइल बनाता है।
  • सृजन करना: यह एक नई फ़ाइल बनाने के लिए डिज़ाइन किया गया है।
  • नया बनाओ: यह ऑपरेटिंग सिस्टम को निर्दिष्ट करने के लिए डिज़ाइन किया गया है, कि इसे एक नई फ़ाइल बनाना चाहिए।
  • खुला हुआ: यह एक मौजूदा फ़ाइल खोलने के लिए डिज़ाइन किया गया है।
  • OpenOrCreate: यह ऑपरेटिंग सिस्टम को निर्दिष्ट करने के लिए डिज़ाइन किया गया है कि यह मौजूद होने पर एक फ़ाइल खोलना चाहिए, अन्यथा इसे एक नई फ़ाइल बनाना चाहिए।
  • ट्रंकसेट: Truncate एक मौजूदा फ़ाइल खोलता है और इसके आकार को शून्य बाइट्स में विभाजित करता है।

FileAccess

FileAccess एन्यूमरेटर का उपयोग किसी विशेष फ़ाइल तक पहुंच प्राप्त करने के लिए किया जाता है। इसके निम्नलिखित सदस्य हैं।

  • पढ़ें
  • लिखो
  • पढ़ना लिखना

फाइल साझाकरण

फाइल साझाकरण एन्यूमरेटर का उपयोग किसी विशेष फ़ाइल को साझा करने के लिए किया जाता है। इसके निम्नलिखित सदस्य हैं।

  • इनहेरिटेबल: इनहेरिटेबल एक फ़ाइलहैंडल को बाल प्रक्रियाओं में एक विरासत पारित करने की अनुमति देता है।
  • कोई नहीं: वर्तमान फ़ाइल के साझाकरण को कोई भी अस्वीकार नहीं करता है
  • पढ़ें: पढ़ने के लिए फ़ाइल खोलने की अनुमति देता है पढ़ें।
  • पढ़ना लिखना: ReadWrite फ़ाइल को पढ़ने और लिखने के लिए खोलने की अनुमति देता है।
  • लिखो: लिखने के लिए फाइल खोलने की अनुमति देता है।

आयोजन

एक ईवेंट को आमतौर पर उपयोगकर्ता द्वारा बनाई गई एक क्रिया के रूप में जाना जाता है। यह माउस का एक क्लिक और यहां तक ​​कि कीबोर्ड से एक भी कीस्ट्रोक हो सकता है। इसी तरह, C # प्रोग्राम में भी इवेंट होते हैं। घटना के जनरेटर को कहा जाता है प्रकाशक और घटना के रिसीवर को कहा जाता है ग्राहक।

प्रकाशक

सेवा मेरे प्रकाशक इसमें ईवेंट और प्रतिनिधि की परिभाषा शामिल है। द घटना-प्रतिनिधि संघ इस वस्तु में परिभाषित है। ए प्रकाशक क्लास ऑब्जेक्ट घटना को आमंत्रित करता है और इसे अन्य वस्तुओं के लिए अधिसूचित किया जाता है।

सबस्क्राइबर

सेवा मेरे ग्राहक घटना को स्वीकार करता है और एक प्रदान करता है आयोजन प्रबंधकर्ता।प्रतिनिधि प्रकाशक वर्ग विधि / घटना को आमंत्रित करता है हैंडलर ग्राहक वर्ग का।

उदाहरण:

सिस्टम नामस्थान Edureka {सार्वजनिक प्रतिनिधि स्ट्रिंग डेल (स्ट्रिंग str) वर्ग EventBlock {इवेंट Del NewEvent सार्वजनिक EventBlock () {this.NewEvent + = नया Del (यह। WelcomeUser)} सार्वजनिक स्ट्रिंग Welcomeser (स्ट्रिंग उपयोगकर्ता नाम) {वापसी ’का उपयोग कर Edureka में आपका स्वागत है । '+ उपयोगकर्ता नाम} स्टेटिक शून्य मेन (स्ट्रिंग [] args) {EventBlock obj1 = new EventBlock () स्ट्रिंग परिणाम = obj1.NewEvent (' हैप्पी लर्निंग ') कंसोल.ट्राइटलाइन (परिणाम)}}}

// आउटपुट:

Edureka में आपका स्वागत है। हैप्पी लर्निंग

जेनेरिक्स

जेनेरिक्स एक वर्ग के सदस्यों और जगह धारकों के साथ तरीके प्रदान करने की एक अवधारणा है रन-टाइम। हम जेनेरिक का उपयोग करके परिभाषित कर सकते हैं कोष्ठक। आइए हम निम्नलिखित उदाहरण देखें।

क्लास में जेनरिक

सिस्टम नामस्थान Edureka {class GenericClass {public GenericClass (T msg) {Console.WriteLine (msg)}} वर्ग प्रोग्राम {static void Main (string [] args) {GenericClass = नया GenericClass ('यह संदेश जेनेरिक क्लास से है') का उपयोग करना ) GenericClass genI = नई GenericClass (123) GenericClass getCh = नई GenericClass ('E')}}}

// आउटपुट:

यह संदेश जेनेरिक क्लास का है
123
है

एक विधि में जेनरिक

सिस्टम नामस्थान Edureka {class GenericClass {public void Show (T msg) {Console.WriteLine (msg)}} वर्ग प्रोग्राम {static void Main (string [] args) {GenericClass genes = new GenericClass () genC.Show ('This) संदेश जेनेरिक विधि से है ') genC.Show (321) genC.Show (' H ')}}}

// आउटपुट:

यह संदेश जेनेरिक विधि से है
321

प्रतिनिधि करता है

प्रतिनिधि विधि के संदर्भ के रूप में कार्य करता है। मूल रूप से यह एक के रूप में ही है कार्य सूचक C और C ++ में, लेकिन बेहतर और सुरक्षित प्रकार में। में प्रतिनिधि स्थैतिक विधि केवल विधि encapsulates। जबकि प्रतिनिधि में उदाहरण विधि विधि और उदाहरण दोनों को कूटबद्ध करती है। प्रतिनिधि का सबसे अच्छा उपयोग एक के रूप में उपयोग करना है प्रतिस्पर्धा।

उदाहरण:

सिस्टम डेलिगेट इंट कैलकुलेटर (इंट एन) पब्लिक क्लास एडुर्का {स्टेटिक इंट नंबर = 25 पब्लिक स्टेटिक इंट ऐड (इंट एन) {नंबर = नंबर + एन रिटर्न नंबर} पब्लिक स्टेटिक इंट मॉल (इंट एन) {नंबर = नंबर * एन रिटर्न नंबर} सार्वजनिक स्थिर int getNumber () {रिटर्न नंबर} सार्वजनिक स्टेटिक शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {कैलकुलेटर c1 = नया कैलकुलेटर (जोड़ें) कैलकुलेटर c2 = नया कैलकुलेटर (mul) c1 (20) कंसोल (वाट्सएप कैलकुलेटर) एक प्रतिनिधि, नया नंबर है: '+ getNumber ()) c2 (3) कंसोल। क्राइटलाइन (' कैलकुलेटर दो प्रतिनिधि के बाद, नया नंबर है: '+ getNumber ())}

// आउटपुट:

कैलकुलेटर एक प्रतिनिधि के बाद, नया नंबर है: 45
कैलकुलेटर दो प्रतिनिधि के बाद, नया नंबर है: 135

प्रतिबिंब

रन-टाइम में मेटाडेटा प्राप्त करने के लिए परावर्तन आवश्यक है। में संदर्भ उपलब्ध है प्रणाली नाम स्थान। इसे निष्पादित करने के लिए निम्न वर्गों की आवश्यकता है।

  • प्रकार
  • सदस्य
  • कंस्ट्रक्टरइन्फो
  • MethodInfo
  • FieldInfo
  • संपत्ति
  • TypeInfo
  • EventInfo
  • मापांक
  • सभा
  • असेंबली का नाम
  • सूचक

वर्ग टाइप करें

सी # प्रकार वर्ग वर्ग प्रकार, इंटरफ़ेस प्रकार, गणना प्रकार, सरणी प्रकार, मान प्रकार के लिए प्रकार की घोषणाओं का प्रतिनिधित्व करता है

प्रकार के गुण

प्रकार वर्गों के महत्वपूर्ण गुणों की एक सूची नीचे उल्लिखित है।

संपत्ति विवरण
सभा इस प्रकार के लिए विधानसभा हो जाता है।
असेंबलीक्वाइननेम इस प्रकार के लिए विधानसभा योग्य नाम प्राप्त होता है।
विशेषताएँ प्रकार से जुड़े गुण प्राप्त करता है।
आधार आधार या माता-पिता का प्रकार हो जाता है।
पूरा नाम प्रकार के पूरी तरह से योग्य नाम हो जाता है।
IsAbstract यह जाँचने के लिए उपयोग किया जाता है कि क्या टाइप अमूर्त है।
IsArray यह जाँचने के लिए उपयोग किया जाता है कि क्या प्रकार एरे है।
IsClass यह जाँचने के लिए उपयोग किया जाता है कि क्या प्रकार वर्ग है।
इसनम यह जाँचने के लिए प्रयोग किया जाता है कि क्या प्रकार एनम है।
IsInterface यह देखने के लिए उपयोग किया जाता है कि क्या प्रकार इंटरफ़ेस है।
निसंतान है यह जांचने के लिए उपयोग किया जाता है कि क्या प्रकार नेस्टेड है।
इजिप्टिटिव यह जांचने के लिए उपयोग किया जाता है कि क्या प्रकार आदिम है।
IsPointer यह इंगित करने के लिए उपयोग किया जाता है कि क्या प्रकार पॉइंटर है।
IsNotPublic यह जाँचने के लिए उपयोग किया जाता है कि क्या प्रकार सार्वजनिक नहीं है।
IsPublic है का उपयोग यह जांचने के लिए किया जाता है कि क्या प्रकार सार्वजनिक है।
बंद है का उपयोग यह जांचने के लिए किया जाता है कि क्या प्रकार सील है।
अलग करने योग्य है यह जाँचने के लिए उपयोग किया जाता है कि क्या प्रकार सीरियल योग्य है।
सद य यह जाँचने के लिए उपयोग किया जाता है कि क्या प्रकार सदस्य नस्टेड प्रकार का सदस्य है।
मापांक प्रकार के मॉड्यूल हो जाता है।
नाम प्रकार का नाम हो जाता है।
नाम स्थान प्रकार के नाम स्थान प्राप्त करता है।
संपत्ति विवरण
GetConstructors () प्रकार के लिए सभी सार्वजनिक निर्माणकर्ताओं को लौटाता है।
GetConstructors (BindingFlags) निर्दिष्ट BindingFlags के साथ प्रकार के लिए सभी निर्माणकर्ताओं को लौटाता है।
GetFields () प्रकार के लिए सभी सार्वजनिक फ़ील्ड लौटाता है।
GetFields (BindingFlags) निर्दिष्ट BindingFlags के साथ प्रकार के लिए सभी सार्वजनिक निर्माणकर्ताओं को लौटाता है।
GetMembers () प्रकार के लिए सभी सार्वजनिक सदस्यों को लौटाता है।
GetMembers (BindingFlags) निर्दिष्ट BindingFlags के साथ प्रकार के लिए सभी सदस्यों को देता है।
GetMethods () प्रकार के लिए सभी सार्वजनिक तरीके लौटाता है।
GetMethods (BindingFlags) निर्दिष्ट BindingFlags के साथ प्रकार के लिए सभी विधियाँ लौटाता है।
GetProperties () प्रकार के लिए सभी सार्वजनिक गुण देता है।
GetProperties (BindingFlags) निर्दिष्ट BindingFlags के साथ प्रकार के लिए सभी गुण लौटाता है।
GetType () वर्तमान प्रकार हो जाता है।
GetType (स्ट्रिंग) दिए गए नाम के लिए प्रकार प्राप्त करता है।

परावर्तन उदाहरण:

टाइप करें

उदाहरण:

सिस्टम पब्लिक क्लास GetType {public static void Main () {int a = 10 type type = a.GetType () Console.WriteLine (टाइप)}} का उपयोग करना

// आउटपुट:

प्रणाली

विधानसभा जाओ

उदाहरण:

System.Reflection public class GetAssembly {सार्वजनिक स्थैतिक शून्य मुख्य () {प्रकार t = टाइपोफ़ (System.String) कंसोल। witeLine (t.Assembly)}} का उपयोग करके सिस्टम का उपयोग करना

// आउटपुट:

System.PStreet.CoreLib, संस्करण = 4.0.0.0, संस्कृति = तटस्थ, PublicKeyToken = 7ce8585d7bea7798e

प्रिंट प्रकार की जानकारी

उदाहरण:

System.Reflection public class PrintType {public static void Main () {Type t = typeof (System.String) Console.WriteLine (t.FullName) Console.WriteLine (t .BaseType) Console.WriteLine (t.IsClass) का उपयोग कर सिस्टम का उपयोग कर Console.WriteLine (t.IsEnum) Console.WriteLine (t.IsInterface)}

// आउटपुट:

सच
असत्य
असत्य

प्रिंटर्स कन्स्ट्रक्टर्स

उदाहरण:

System.Reflection public class PrintConstructors {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('{0} टाइप के कन्स्ट्रक्टर्स ...', t) कंस्ट्रक्टरइन्फो [] ci = t .GetConstructors (BindingFlags.Public | BindingFlags.Instance) foreach (ci में ConstructorInfo c) {Console.WriteLine (c)}}}}

// आउटपुट:

System.String प्रकार के निर्माता ...
शून्य। ट्रैक्टर (चार [])
शून्य। ट्रैक्टर (चार [], इंट ३, इंट ३२)
शून्य .ctor (चार *)
शून्य। ट्रैक्टर (चार *, Int32, Int32)
शून्य। ट्रैक्टर (SByte *)
शून्य। ट्रैक्टर (SByte *, Int32, Int32)
शून्य। ट्रैक्टर (SByte *, Int32, Int32, System.Text.Encoding)
शून्य। ट्रैक्टर (चार, इंट 32)
शून्य। ट्रैक्टर (System.ReadOnlySpan`1 [System.Char])

प्रिंट के तरीके

उदाहरण:

System.Reflection public class PrintMethods {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('Methods of {0} type ...', t) MethodInfo [] ci = t का उपयोग करके सिस्टम का उपयोग करना .GetMethods (BindingFlags.Public | BindingFlags.Instance) foreach (MethodInfo m in ci) {Console.WriteLine (m)}}}

// आउटपुट:

System.String प्रकार के तरीके ...
System.String बदलें (System.String, System.String)
System.String [] विभाजन (चार, System.StringSplitOptions)
System.String [] भाजित (चार, Int32, System.StringSplitOptions)
System.String [] स्प्लिट (चार [])
System.String [] स्प्लिट (चार [], Int32)
System.String [] भाजित (चार [], System.StringSplitOptions)
System.String [] भाजित (चार [], Int32, System.StringSplitOptions)
System.String [] स्प्लिट (System.String, System.StringSplitOptions)
System.String [] विभाजन (System.String, Int32, System.StringSplitOptions)
System.String [] भाजित (System.String [], System.StringSplitOptions)
System.String [] भाजित (System.String [], Int32, System.StringSplitOptions) ......

प्रिंट फ़ील्ड्स

उदाहरण:

System.Reflection public class PrintFields {public static void Main () {Type t = typeof (System.String) Console.WriteLine ('फ़ील्ड्स ऑफ़ {0} टाइप ...', t) FieldInfo [] ci = t का उपयोग करके सिस्टम का उपयोग करना .GetFields (BindingFlags.Public | BindingFlags.Static | BindingFlags.NonPublic) foreach (ci में FieldInfo f) {Console.WriteLine (f)}}}

// आउटपुट:

System.String प्रकार के फ़ील्ड ...
System.String खाली

अब, हम कुछ उन्नत C # प्रोग्रामिंग कॉन्सेप्ट्स पर चलते हैं

उन्नत सी # अवधारणाओं

अनाम क्रिया

किसी विशिष्ट नाम की कमी वाले फ़ंक्शन को कहा जाता है अनाम कार्य। C # में दो प्रकार के बेनामी फ़ंक्शंस उपलब्ध हैं

  • लैंबडा एक्सप्रेशन
  • अनाम तरीके

उदाहरण:

सिस्टम नेमस्पेस लैम्बडाएक्सप्रेस का उपयोग करते हुए {class Edureka {प्रतिनिधि int Square (int num) स्टेटिक शून्य मेन (string [] args) {Square GetSquare = x => x * x int j = GetSquare (25) Console.WriteLine ('Square:' + + जे) } } }

// आउटपुट:

वर्ग: 625

अनाम तरीके

अनाम विधि एक के रूप में एक ही कार्यक्षमता प्रदान करता है लंबोदर अभिव्यक्ति, सिवाय इसके कि यह हमें पैरामीटर सूची को अनदेखा करने की अनुमति देता है।

उदाहरण:

सिस्टम नेमस्पेस का उपयोग करके बेनामीमेथोड्स {वर्ग कार्यक्रम {सार्वजनिक प्रतिनिधि शून्य अनामिका () स्टेटिक शून्य मेन (स्ट्रिंग [] आर्ग्स) {बेनामी फन = डेलीगेट () {Console.WriteLine (यह अनाम कार्य है))} मस्ती ()}}}}}

// आउटपुट:

यह अनाम फ़ंक्शन है

मल्टी थ्रेडिंग

मल्टीथ्रेडिंग एक ऐसी प्रक्रिया है जिसमें विभिन्न कार्य के लिए कई थ्रेड बनाए और असाइन किए जाते हैं। यह एक बार में कई कार्य निष्पादित करके समय बचाता है। इसमें मल्टीथ्रेडिंग क्लास उपलब्ध है प्रणाली नाम स्थान।

System.Threading Namespace

प्रणाली नेमस्पेस में मल्टीथ्रेडिंग की सुविधा के लिए कक्षाएं और इंटरफेस हैं। यह थ्रेड संसाधन को सिंक्रनाइज़ करने के लिए कक्षाएं प्रदान करता है। आमतौर पर इस्तेमाल किए जाने वाले वर्गों की एक सूची नीचे दी गई है:

  • धागा
  • म्यूटेक्स
  • टाइमर
  • मॉनिटर करें
  • सेमाफोर
  • थ्रेडलोक
  • धागा पूल
  • अस्थिर

प्रक्रिया और धागा

प्रक्रिया वास्तव में है और आवेदन और इसे एक माना जाता है भारी घटक। दूसरी ओर, धागा एक एकल है मापांक पूरे आवेदन की। यह है हल्का प्रक्रिया की तुलना में

एक धागे का जीवनचक्र

प्रत्येक थ्रेड में एक जीवन चक्र होता है। थ्रेड का जीवन चक्र System.Threading.Thread वर्ग में परिभाषित किया गया है। किसी भी धागे के जीवन चक्र में निम्नलिखित चरण हैं।

  • अनारक्षित
  • Runnable (चलाने के लिए तैयार)
  • चल रहा है
  • न चलने योग्य
  • मरे हुए

थ्रेड वर्ग निम्न गुण और तरीके निम्न प्रकार प्रदान करता है।

धागा गुण

संपत्ति विवरण
करंट वर्तमान में चल रहे धागे का उदाहरण देता है।
जीवित है जाँच करता है कि वर्तमान धागा जीवित है या नहीं।
IsBackground वर्तमान थ्रेड का मान / सेट मान पृष्ठभूमि में है या नहीं।
ManagedThreadId वर्तमान में प्रबंधित थ्रेड के लिए अद्वितीय आईडी प्राप्त करने के लिए उपयोग किया जाता है।
नाम वर्तमान थ्रेड का नाम प्राप्त करने या सेट करने के लिए उपयोग किया जाता है।
प्राथमिकता वर्तमान थ्रेड की प्राथमिकता प्राप्त करने या सेट करने के लिए उपयोग किया जाता है।
थ्रेडस्टैट थ्रेड स्थिति का प्रतिनिधित्व करने वाले मान को वापस करने के लिए उपयोग किया जाता है।

धागा विधि

तरीका विवरण
गर्भपात () धागे को समाप्त करने के लिए उपयोग किया जाता है। यह ThreadAbortException को बढ़ाता है।
रुकावट () जिसका उपयोग WaitSleepJoin अवस्था में एक थ्रेड को बाधित करने के लिए किया जाता है।
सम्मिलित हों () इस थ्रेड के समाप्त होने तक सभी कॉलिंग थ्रेड्स को ब्लॉक करने के लिए उपयोग किया जाता है।
ResetAbort () वर्तमान थ्रेड के लिए एबोर्ट अनुरोध को रद्द करने के लिए उपयोग किया जाता है।
बायोडाटा() निलंबित धागे को फिर से शुरू करने के लिए उपयोग किया जाता है। यह अप्रचलित है।
नींद (Int32) निर्दिष्ट मिलीसेकंड के लिए वर्तमान थ्रेड को निलंबित करने के लिए उपयोग किया जाता है।
शुरू() धागे की वर्तमान स्थिति को रननेबल में बदलता है।
सस्पेंड () निलंबित न होने पर वर्तमान थ्रेड को निलंबित कर देता है। यह अप्रचलित है।
प्राप्ति() वर्तमान धागे के निष्पादन को दूसरे धागे तक पहुंचाने के लिए उपयोग किया जाता है।

मुख्य सूत्र उदाहरण

सिस्टम का उपयोग करते हुए सिस्टम का उपयोग करना। सार्वजनिक वर्ग के एज्यूरका {सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {थ्रेड टी = थ्रेड। CTTreadread t.Name = 'MainThread' Console.WriteLine (t .Name)}}

// आउटपुट:

MainThread

एक्सेप्शन हेंडलिंग

अपवाद अपने रन-टाइम में प्रोग्राम द्वारा डाली गई एक त्रुटि है। हम अपने प्रोग्राम को अपवाद मुक्त बनाने के लिए अपवाद-संचालन करते हैं।

अपवाद विवरण
System.DivideByZeroException किसी संख्या को शून्य के साथ विभाजित करके उत्पन्न त्रुटि।
System.NullReferenceException अशक्त वस्तु को संदर्भित करके उत्पन्न त्रुटि को संभालता है।
System.InvalidCastException अमान्य टाइपकास्टिंग द्वारा उत्पन्न त्रुटि को संभालता है।
System.IO.IOException इनपुट / आउटपुट त्रुटियों को संभालता है।
System.FieldAccessException अमान्य निजी / संरक्षित पहुंच द्वारा उत्पन्न त्रुटि।

C # में, हम प्रदर्शन करने के लिए 4 कीवर्ड का उपयोग करते हैं एक्सेप्शन हेंडलिंग:

  • प्रयत्न
  • पकड़
  • अंत में, और
  • फेंकना
उदाहरण:
सिस्टम पब्लिक क्लास का उपयोग करते हुए EdurekExample {सार्वजनिक स्थैतिक शून्य मेन (स्ट्रिंग [] args) {try {int a = 10 int b = 0 int x = a / b} कैच (अपवाद e) {Console.WriteLine (e)} Console.WriteLine ('यह संदेश कैच ब्लॉक से है)}}

// आउटपुट:

System.DivideByZeroException: शून्य से विभाजित करने का प्रयास किया गया।
ExExaEdurekample.Main (String [] args) पर F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: पंक्ति 10
यह संदेश कैच ब्लॉक से है

अनुकूलित अपवाद उदाहरण

सिस्टम सार्वजनिक वर्ग का उपयोग करना InvalidAgeException: Exception {public InvalidAgeException (स्ट्रिंग संदेश): आधार (संदेश) {}} सार्वजनिक वर्ग स्वनिर्धारित {स्थैतिक शून्य मान्य (अंतर आयु) {यदि (आयु)<18) { throw new InvalidAgeException('Sorry, Age is expected to be greater than 18') } } public static void Main(string[] args) { try { validate(12) } catch (InvalidAgeException e) { Console.WriteLine(e) } Console.WriteLine('Catch block is being executed now.') } } 

// आउटपुट:

InvalidAgeException: क्षमा करें, आयु 18 से अधिक होने की उम्मीद है
F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: पंक्ति में Custom.validate (Int32 उम्र)
अनुकूलित में। मेन (स्ट्रिंग [] args) F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: लाइन 23
कैच ब्लॉक को अब निष्पादित किया जा रहा है।

अंत में ब्लॉक उदाहरण

सिस्टम पब्लिक क्लास फ़ाइनलएक्सिपेशन {सार्वजनिक स्टेटिक शून्य मेन (स्ट्रिंग [] args) {कोशिश {int a = 10 int b = 0 int x = a / b} कैच (अपवाद e) {Console.WriteLine (e) का उपयोग करते हुए अंत में {कंसोल .WriteLine ('अंत में ब्लॉक निष्पादित किया जाता है')} कंसोल। क्राइटलाइन ('कैच ब्लॉक निष्पादित किया जाता है')}}

// आउटपुट:

System.DivideByZeroException: शून्य से विभाजित करने का प्रयास किया गया।
FinalExecption.Main (String [] args) पर F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: पंक्ति 10
अंत में ब्लॉक निष्पादित किया जाता है
कैच ब्लॉक निष्पादित किया जाता है

सिस्टम अपवाद हस्ताक्षर

[SerializableAttribute] [ComVanishAttribute (सत्य)] सार्वजनिक वर्ग SystemException: अपवाद

सिस्टम एक्सेप्शन कंस्ट्रक्टर्स

बिल्डर विवरण
SystemException () इसका उपयोग SystemException वर्ग के एक नए उदाहरण को इनिशियलाइज़ करने के लिए किया जाता है।
SystemException

(SerializationInfo, StreamingContext)

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

सिस्टम अपवाद गुण

संपत्ति विवरण
डेटा इसका उपयोग कुंजी / मूल्य जोड़े के संग्रह को प्राप्त करने के लिए किया जाता है जो अपवाद के बारे में अतिरिक्त उपयोगकर्ता-परिभाषित जानकारी प्रदान करते हैं।
हेल्पलिंक इसका उपयोग इस अपवाद से जुड़ी मदद फ़ाइल के लिए लिंक प्राप्त करने या सेट करने के लिए किया जाता है।
HResult इसका उपयोग HRESULT को प्राप्त करने या सेट करने के लिए किया जाता है, एक कोडित संख्यात्मक मान जो एक विशिष्ट अपवाद को सौंपा गया है।
भीतरी अपवाद इसका उपयोग अपवाद अपवाद को प्राप्त करने के लिए किया जाता है जो वर्तमान अपवाद का कारण बनता है।
संदेश इसका उपयोग एक संदेश प्राप्त करने के लिए किया जाता है जो वर्तमान अपवाद का वर्णन करता है।
स्रोत इसका उपयोग उस एप्लिकेशन के नाम को प्राप्त करने या सेट करने के लिए किया जाता है जो त्रुटि का कारण बनता है।
स्टैक ट्रेस इसका उपयोग कॉल स्टैक पर तत्काल फ़्रेम का एक स्ट्रिंग प्रतिनिधित्व प्राप्त करने के लिए किया जाता है।
लक्षित करें इसका उपयोग उस विधि को प्राप्त करने के लिए किया जाता है जो वर्तमान अपवाद को फेंकता है।

सिस्टम एक्सेप्शन मेथड्स

तरीके विवरण
बराबर (वस्तु) इसका उपयोग यह जांचने के लिए किया जाता है कि निर्दिष्ट वस्तु वर्तमान वस्तु के बराबर है या नहीं।
अंतिम रूप दें () इसका उपयोग संसाधनों को मुक्त करने और सफाई कार्यों को करने के लिए किया जाता है।
GetBaseException () इसका उपयोग मूल अपवाद प्राप्त करने के लिए किया जाता है।
GetHashCode () इसका उपयोग हैश कोड प्राप्त करने के लिए किया जाता है।
GetObjectData

(SerializationInfo, StreamingContext)

इसका उपयोग ऑब्जेक्ट डेटा प्राप्त करने के लिए किया जाता है।
GetType () इसका उपयोग वर्तमान उदाहरण के रनटाइम प्रकार को प्राप्त करने के लिए किया जाता है।
सदस्यवार क्लिक करें () इसका उपयोग वर्तमान वस्तु की उथली प्रतिलिपि बनाने के लिए किया जाता है।
तार() इसका उपयोग वर्तमान अपवाद के एक स्ट्रिंग प्रतिनिधित्व को बनाने और वापस करने के लिए किया जाता है।

सिस्टम अपवाद उदाहरण

सिस्टम नामस्थान CSharpProgram {class SystemExceptionExample {स्थिर शून्य मुख्य (स्ट्रिंग [] args) {कोशिश {int [] गिरफ्तारी = नया int [5] गिरफ्तार [10] = 25} कैच (SystemException e) / Console.WriteLine (e)} का उपयोग करना }}}

// आउटपुट:

System.IndexOutOfRangeException: इंडेक्स सरणी की सीमा के बाहर था।
CSharpProgram.SystemExceptionExample.Main (String [] args) पर F: C # TutorialC # ProgramsConsoleApp1ConsoleApp1Program.cs: लाइन 11

तादात्म्य

सिंक्रोनाइज़ेशन एक ऐसी तकनीक हो सकती है जो किसी विशिष्ट समय के लिए संसाधन तक पहुँचने के लिए केवल 1 थ्रेड को सक्षम करती है। कोई भी वैकल्पिक धागा तब तक बाधित नहीं होगा जब तक कि नियुक्त धागा अपना कार्य पूरा नहीं कर लेता।

मल्टीथ्रेडिंग प्रोग्राम में, थ्रेड्स की अनुमति हैके लिए किसी भी संसाधन का उपयोग करने के लिएनिर्दिष्ट निष्पादनसमय। थ्रेड्स संसाधनों को साझा करते हैं और अतुल्यकालिक रूप से निष्पादित करते हैं। साझा संसाधनों तक पहुँच (डेटा)कोई महत्वपूर्ण कार्य हो सकता हैवह आम तौर पररुक सकता थाप्रणाली।हमारे पास इसे प्रभावित करने की प्रवृत्ति हैएक तुल्यकालिक तरीके से धागे बनाने के द्वारा

बिना सिंक्रोनाइज़ेशन के उदाहरण

System.Threading क्लास Edureka {public void PrintTable () {for (int i = 1 i) का उपयोग कर सिस्टम का उपयोग करना<= 10 i++) { Thread.Sleep(100) Console.WriteLine(i) } } } class Program { public static void Main(string[] args) { Edureka p = new Edureka() Thread t1 = new Thread(new ThreadStart(p.PrintTable)) Thread t2 = new Thread(new ThreadStart(p.PrintTable)) t1.Start() t2.Start() } } 

// आउटपुट:

एक
एक
















१०
१०

सिंक्रनाइज़ेशन के साथ उदाहरण

System.Threading क्लास Edureka {public void PrintTable () {लॉक (यह) {for (int = 1) i का उपयोग कर सिस्टम का उपयोग करना<= 10 i++) { Thread.Sleep(100) Console.WriteLine(i) } } } } class Program { public static void Main(string[] args) { Edureka p = new Edureka() Thread t1 = new Thread(new ThreadStart(p.PrintTable)) Thread t2 = new Thread(new ThreadStart(p.PrintTable)) t1.Start() t2.Start() } } 

// आउटपुट:

एक








१०
एक








१०

नई सुविधाओं

Microsoft ने C # भाषा में कई नवीनतम सुविधाएँ जोड़ी हैं जिनमें से कुछ का उल्लेख नीचे किया गया है।

सी # 6.0

  • स्थिर निर्देश का उपयोग करना
  • अपवाद फ़िल्टर
  • पकड़ में अंत में इंतजार / अंत में ब्लॉक
  • ऑटो संपत्ति इनिशियलाइज़र
  • गटर-केवल गुणों के लिए डिफ़ॉल्ट मान
  • अभिव्यक्ति-शारीरिक सदस्य
  • अशक्त प्रचारक
  • स्ट्रिंग इंटरपोलेशन
  • Nameof ऑपरेटर
  • शब्दकोश इनिशियलाइज़र
  • कंपाइलर-ए-ए-सर्विस (रोजलिन)

सी # 7.0

  • पैटर्न मिलान
  • टुपल्स
  • विघटन
  • स्थानीय कार्य
  • अंक विभाजक
  • द्विआधारी शाब्दिक
  • रेफरी और स्थानीय लोग
  • अभिव्यक्ति ने रचनाकारों और फाइनलर्स को उभारा
  • अभिव्यक्ति ने धूम मचा दी
  • बाहर चर
  • सामान्यकृत async रिटर्न प्रकार

C # 7.1

  • Async मुख्य
  • डिफ़ॉल्ट भाव

C # पर आधारित साक्षात्कार प्रश्न

C # प्रोग्रामिंग लैंग्वेज पर आधारित महत्वपूर्ण साक्षात्कार प्रश्न इस अपडेट में पाए जा सकते हैं ।

इसके साथ, हम इस 'C # ट्यूटोरियल' लेख के अंत में आते हैं। मुझे आशा है कि आपने डेटा स्ट्रक्चर्स, सिंटेक्स, कार्यक्षमता और उनके उपयोग से किए गए ऑपरेशनों के महत्व को समझ लिया है। अब जब कि आप इसके माध्यम से C # में Programming की मूल बातें समझ गए हैंC # ट्यूटोरियल, इसकी जाँच पड़ताल करो प्रशिक्षण प्रदत्त जावा जैसी कई तकनीकों पर Edureka द्वारा, वसंत और बहुतअधिक, दुनिया भर में फैले 250,000 से अधिक संतुष्ट शिक्षार्थियों के नेटवर्क के साथ एक विश्वसनीय ऑनलाइन शिक्षण कंपनी हमारे लिए सवाल? इस 'C # ट्यूटोरियल' ब्लॉग के टिप्पणी अनुभाग में उल्लेख करें और हम जल्द से जल्द आपको वापस कर देंगे।