शीर्ष 50 C# साक्षात्कार प्रश्न और उत्तर (2025)
फ्रेशर्स और 2/3/5/10 साल के अनुभव के लिए C# साक्षात्कार प्रश्न और उत्तर
यहां नए और साथ ही 5 या 10 साल के अनुभवी उम्मीदवारों के लिए C# साक्षात्कार प्रश्न और उत्तर दिए गए हैं ताकि वे अपने सपनों की नौकरी पा सकें।
1) सी# क्या है?
C# एक ऑब्जेक्ट-ओरिएंटेड, टाइप-सेफ और प्रबंधित भाषा है जिसे .Net फ्रेमवर्क द्वारा संकलित किया जाता है Microsoft मध्यवर्ती भाषा.
👉 मुफ्त पीडीएफ डाउनलोड: सी# साक्षात्कार प्रश्न और उत्तर
2) टिप्पणी के प्रकार बताएं C# उदाहरणों के साथ
एक लाइन
उदाहरण:
//This is a single line comment
ii. बहु पंक्ति (/* */)
उदाहरण:
/*This is a multiple line comment We are in line 2 Last line of comment*/
iii. XML टिप्पणियाँ (///).
उदाहरण:
/// summary; /// Set error message for multilingual language. /// summary
3) क्या एकाधिक कैच ब्लॉक निष्पादित किये जा सकते हैं?
नहीं, समान प्रकार के कई कैच ब्लॉक निष्पादित नहीं किए जा सकते। एक बार उचित कैच कोड निष्पादित होने के बाद, नियंत्रण अंततः ब्लॉक में स्थानांतरित हो जाता है, और फिर अंततः ब्लॉक के बाद आने वाला कोड निष्पादित हो जाता है।
4) सार्वजनिक, स्थिर और शून्य के बीच क्या अंतर है?
सार्वजनिक रूप से घोषित चर या विधियाँ एप्लिकेशन में कहीं भी पहुँच योग्य हैं। स्थैतिक घोषित चर या विधियाँ क्लास का उदाहरण बनाए बिना वैश्विक रूप से पहुँच योग्य हैं। स्थैतिक सदस्य डिफ़ॉल्ट रूप से वैश्विक रूप से पहुँच योग्य नहीं होते हैं, यह उपयोग किए गए संशोधित पहुँच के प्रकार पर निर्भर करता है। कंपाइलर विधि के पते को प्रवेश बिंदु के रूप में संग्रहीत करता है और किसी भी ऑब्जेक्ट के निर्माण से पहले निष्पादन शुरू करने के लिए इस जानकारी का उपयोग करता है। और शून्य एक प्रकार संशोधक है जो बताता है कि विधि या चर कोई मान नहीं लौटाता है।
सी# साक्षात्कार प्रश्न
5) वस्तु क्या है?
ऑब्जेक्ट किसी क्लास का एक उदाहरण होता है जिसके ज़रिए हम उस क्लास के तरीकों तक पहुँचते हैं। ऑब्जेक्ट बनाने के लिए “नया” कीवर्ड का इस्तेमाल किया जाता है। मेमोरी में ऑब्जेक्ट बनाने वाली क्लास में उस क्लास के तरीकों, चर और व्यवहार के बारे में जानकारी होगी।
6) कंस्ट्रक्टर्स को परिभाषित करें
कंस्ट्रक्टर एक क्लास में एक सदस्य फ़ंक्शन है जिसका नाम उसके क्लास के समान होता है। जब भी कोई ऑब्जेक्ट क्लास बनाई जाती है तो कंस्ट्रक्टर स्वचालित रूप से इनवोक हो जाता है। यह क्लास को इनिशियलाइज़ करते समय डेटा सदस्यों के मानों का निर्माण करता है।
7) जैग्ड एरेज़ क्या है?
जिस ऐरे में ऐरे टाइप के तत्व होते हैं उसे दांतेदार ऐरे कहते हैं। तत्व अलग-अलग आयाम और आकार के हो सकते हैं। दांतेदार ऐरे को हम ऐरे का ऐरे भी कह सकते हैं।
8) रेफ़ और आउट पैरामीटर के बीच क्या अंतर है?
ref के रूप में पारित तर्क को विधि में पारित करने से पहले आरंभीकृत किया जाना चाहिए, जबकि out पैरामीटर को विधि में पारित करने से पहले आरंभीकृत करने की आवश्यकता नहीं है।
9) C# में 'using' स्टेटमेंट का क्या उपयोग है?
'उपयोग' ब्लॉक का उपयोग संसाधन प्राप्त करने और उसे संसाधित करने के लिए किया जाता है और फिर ब्लॉक का निष्पादन पूरा होने पर स्वचालित रूप से उसका निपटान कर दिया जाता है।
10) क्रमांकन क्या है?
जब हम किसी ऑब्जेक्ट को नेटवर्क के ज़रिए ट्रांसपोर्ट करना चाहते हैं, तो हमें ऑब्जेक्ट को बाइट्स की स्ट्रीम में बदलना पड़ता है। किसी ऑब्जेक्ट को बाइट्स की स्ट्रीम में बदलने की प्रक्रिया को सीरियलाइज़ेशन कहा जाता है। किसी ऑब्जेक्ट को सीरियलाइज़ करने के लिए, उसे ISerialize इंटरफ़ेस लागू करना चाहिए। डी-सीरियलाइज़ेशन बाइट्स की स्ट्रीम से ऑब्जेक्ट बनाने की रिवर्स प्रक्रिया है।
11) क्या हम स्टैटिक विधि के भीतर “this” कमांड का उपयोग कर सकते हैं?
हम स्थैतिक विधि में 'This' का प्रयोग नहीं कर सकते, क्योंकि हम स्थैतिक विधि में केवल स्थैतिक चरों/विधियों का ही प्रयोग कर सकते हैं।
12) स्थिरांक और केवल पढ़ने के बीच क्या अंतर है?
स्थिर चर को संकलन समय पर घोषित और आरंभ किया जाता है। उसके बाद मान को बदला नहीं जा सकता। केवल पढ़ने का उपयोग केवल तभी किया जाता है जब हम रन टाइम पर मान निर्दिष्ट करना चाहते हैं।
13) इंटरफ़ेस क्लास क्या है? इसका एक उदाहरण दीजिए
इंटरफ़ेस एक अमूर्त वर्ग है जिसमें केवल सार्वजनिक अमूर्त विधियाँ होती हैं, और विधियों में केवल घोषणा होती है, परिभाषा नहीं। इन अमूर्त विधियों को विरासत में मिली कक्षाओं में लागू किया जाना चाहिए।
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { interface Guru99Interface { void SetTutorial(int pID, string pName); String GetTutorial(); } class Guru99Tutorial : Guru99Interface { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID, string pName) { TutorialID = pID; TutorialName = pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Guru99Tutorial pTutor = new Guru99Tutorial(); pTutor.SetTutorial(1,".Net by Guru99"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
14) मूल्य प्रकार और संदर्भ प्रकार क्या हैं?
एक मान प्रकार अपने मेमोरी स्पेस में डेटा मान रखता है। उदाहरण
int a = 30;
संदर्भ प्रकार उस ऑब्जेक्ट का पता संग्रहीत करता है जहाँ मान संग्रहीत किया जा रहा है। यह किसी अन्य मेमोरी स्थान का सूचक है।
string b = "Hello Guru99!!";
15) कस्टम नियंत्रण और उपयोगकर्ता नियंत्रण क्या हैं?
कस्टम कंट्रोल संकलित कोड (Dlls) के रूप में उत्पन्न नियंत्रण हैं, जिनका उपयोग करना आसान है और उन्हें टूलबॉक्स में जोड़ा जा सकता है। डेवलपर्स अपने वेब फॉर्म में नियंत्रणों को खींच और छोड़ सकते हैं। विशेषताएँ, डिज़ाइन समय पर कर सकती हैं। हम आसानी से कई अनुप्रयोगों (यदि साझा Dlls) में कस्टम नियंत्रण जोड़ सकते हैं। इसलिए, यदि वे निजी हैं, तो हम वेब एप्लिकेशन की बिन निर्देशिका में dll को कॉपी कर सकते हैं और फिर संदर्भ जोड़ सकते हैं और उनका उपयोग कर सकते हैं।
उपयोगकर्ता नियंत्रण ASP शामिल फ़ाइलों के बहुत समान हैं, और इन्हें बनाना आसान है। उपयोगकर्ता नियंत्रणों को टूलबॉक्स में नहीं रखा जा सकता है और न ही उन्हें खींचा जा सकता है - न ही उन्हें छोड़ा जा सकता है। उनके पास अपना डिज़ाइन और कोड-पीछे होता है। उपयोगकर्ता नियंत्रणों के लिए फ़ाइल एक्सटेंशन ascx है।
16) C# में सीलबंद क्लासेस क्या हैं?
जब हम क्लास को विरासत में प्राप्त होने से रोकना चाहते हैं तो हम सीलबंद क्लास बनाते हैं। सीलबंद संशोधक का उपयोग क्लास से व्युत्पन्न को रोकने के लिए किया जाता है। यदि हम किसी सीलबंद क्लास को जबरदस्ती आधार क्लास के रूप में निर्दिष्ट करते हैं, तो संकलन-समय त्रुटि होती है।
17) मेथड ओवरलोडिंग क्या है?
मेथड ओवरलोडिंग का मतलब है एक ही क्लास में एक ही नाम से कई मेथड बनाना, जिनके सिग्नेचर अलग-अलग हों। जब हम संकलित करते हैं, तो कंपाइलर ओवरलोड रिज़ॉल्यूशन का उपयोग करके यह निर्धारित करता है कि किस विशिष्ट मेथड को बुलाया जाना है।
18) ऐरे और ऐरेलिस्ट में क्या अंतर है?
एक सरणी में, हम केवल एक ही प्रकार के आइटम रख सकते हैं। तुलना करने पर सरणी का आकार निश्चित होता है। एक सरणीसूची एक सरणी के समान है, लेकिन इसका कोई निश्चित आकार नहीं है।
19) क्या एक निजी वर्चुअल विधि को ओवरराइड किया जा सकता है?
नहीं, क्योंकि कक्षा के बाहर उन तक पहुंच संभव नहीं है।
20) पहुँच-योग्यता संशोधक “संरक्षित आंतरिक” का वर्णन करें।
संरक्षित आंतरिक चर/विधि उसी असेंबली के भीतर तथा इस मूल वर्ग से व्युत्पन्न वर्गों से भी सुलभ हैं।
21) System.String और System.Text.StringBuilder क्लासों के बीच क्या अंतर हैं?
सिस्टम.स्ट्रिंग अपरिवर्तनीय है। जब हम किसी स्ट्रिंग वैरिएबल के मान को संशोधित करते हैं, तो नए मान के लिए एक नई मेमोरी आवंटित की जाती है और पिछली मेमोरी आवंटन रिलीज़ की जाती है। सिस्टम.स्ट्रिंगबिल्डर को एक परिवर्तनशील स्ट्रिंग की अवधारणा के लिए डिज़ाइन किया गया था जहाँ संशोधित स्ट्रिंग के लिए अलग मेमोरी स्थान आवंटित किए बिना कई तरह के ऑपरेशन किए जा सकते हैं।
22) System.Array.CopyTo() और System.Array.Clone() के बीच क्या अंतर है?
का प्रयोग Clone()
विधि का उपयोग करके, हम मूल सरणी में सभी तत्वों को शामिल करते हुए एक नई सरणी ऑब्जेक्ट बनाते हैं CopyTo()
विधि। मौजूदा सरणी के सभी तत्वों को किसी अन्य मौजूदा सरणी में कॉपी किया जाता है। दोनों विधियाँ उथली प्रतिलिपि बनाती हैं।
23) हम ऐरे के तत्वों को अवरोही क्रम में कैसे व्यवस्थित कर सकते हैं?
का प्रयोग Sort()
अपनाई गई विधियाँ Reverse()
विधि.
24) अपवाद को पकड़ने के लिए C# सिंटैक्स लिखें
अपवाद को पकड़ने के लिए, हम try-catch ब्लॉक का उपयोग करते हैं। कैच ब्लॉक में system.Exception प्रकार का पैरामीटर हो सकता है।
उदाहरण के लिए:
try { GetAllData(); } catch (Exception ex) { }
उपरोक्त उदाहरण में, हम catch स्टेटमेंट से पैरामीटर को छोड़ सकते हैं।
25) इंटरफ़ेस और अमूर्त वर्ग के बीच क्या अंतर है?
इंटरफ़ेस में सभी मेथड में केवल घोषणा होती है लेकिन कोई परिभाषा नहीं होती। एक अमूर्त वर्ग में, हमारे पास कुछ ठोस विधियाँ हो सकती हैं। एक इंटरफ़ेस वर्ग में, सभी विधियाँ सार्वजनिक होती हैं। एक अमूर्त वर्ग में निजी विधियाँ हो सकती हैं।
26) फाइनलाइज़() और डिस्पोज़() विधियों के बीच क्या अंतर है?
Dispose()
जब हम चाहते हैं कि कोई ऑब्जेक्ट अपने साथ कोई अप्रबंधित संसाधन जारी करे, तो इसे कॉल किया जाता है। दूसरी ओर, Finalize()
का उपयोग उसी उद्देश्य के लिए किया जाता है, लेकिन यह किसी ऑब्जेक्ट के कचरा संग्रहण का आश्वासन नहीं देता है।
27) वृत्तीय संदर्भ क्या हैं?
सर्कुलर संदर्भ वह स्थिति है जिसमें दो या दो से अधिक संसाधन एक दूसरे पर निर्भर होते हैं, जिसके कारण लॉक स्थिति उत्पन्न होती है तथा संसाधन अनुपयोगी हो जाते हैं।
28) C#.NET में जेनरिक क्या हैं?
जेनरिक का उपयोग कोड अतिरेक को कम करने, प्रकार सुरक्षा और प्रदर्शन को बढ़ाने के लिए पुन: प्रयोज्य कोड क्लास बनाने के लिए किया जाता है। जेनरिक का उपयोग करके, हम संग्रह क्लास बना सकते हैं। जेनेरिक संग्रह बनाने के लिए, System.Collections नामस्थान में ArrayList जैसे क्लास के बजाय System.Collections.Generic नामस्थान का उपयोग किया जाना चाहिए। जेनरिक पैरामीटरयुक्त प्रकारों के उपयोग को बढ़ावा देता है।
29) .NET में ऑब्जेक्ट पूल क्या है?
ऑब्जेक्ट पूल एक कंटेनर है जिसमें उपयोग के लिए तैयार ऑब्जेक्ट होते हैं। यह वर्तमान में उपयोग में आने वाले ऑब्जेक्ट, पूल में मौजूद ऑब्जेक्ट की कुल संख्या को ट्रैक करता है। इससे ऑब्जेक्ट बनाने और फिर से बनाने का ओवरहेड कम हो जाता है।
30) .net में आमतौर पर इस्तेमाल किए जाने वाले अपवादों के प्रकारों की सूची बनाएं
ArgumentException, ArgumentNullException, ArgumentOutOfRangeException, ArithmeticException, DivideByZeroException, OverflowException, IndexOutOfRangeException, InvalidCastException, अमान्यOperationException, IOEndOfStreamException, NullReferenceException, OutOfMemoryException, StackOverflowException आदि।
31) कस्टम अपवाद क्या हैं?
कभी-कभी कुछ त्रुटियाँ होती हैं जिन्हें उपयोगकर्ता की आवश्यकताओं के अनुसार संभालने की आवश्यकता होती है। उनके लिए कस्टम अपवादों का उपयोग किया जाता है और परिभाषित अपवादों का उपयोग किया जाता है।
32) प्रतिनिधि क्या हैं?
प्रतिनिधि वही हैं जो फ़ंक्शन पॉइंटर्स हैं C++, लेकिन एकमात्र अंतर यह है कि वे फ़ंक्शन पॉइंटर्स के विपरीत, प्रकार सुरक्षित हैं। प्रतिनिधियों की आवश्यकता होती है क्योंकि उनका उपयोग बहुत अधिक सामान्य प्रकार-सुरक्षित फ़ंक्शन लिखने के लिए किया जा सकता है।
33) C# में आप एक क्लास को दूसरे क्लास में कैसे इनहेरिट करते हैं?
C# में Colon का उपयोग इनहेरिटेंस ऑपरेटर के रूप में किया जाता है। बस एक कोलन और फिर क्लास का नाम रखें।
public class DerivedClass : BaseClass
34) .net में वह आधार क्लास क्या है जिससे सभी क्लासें व्युत्पन्न होती हैं?
System.Object
35) विधि ओवरराइडिंग और विधि ओवरलोडिंग में क्या अंतर है?
मेथड ओवरराइडिंग में, हम व्युत्पन्न क्लास में मेथड डेफ़िनेशन को बदलते हैं जो मेथड के व्यवहार को बदल देता है। मेथड ओवरलोडिंग एक ही क्लास में एक ही नाम के साथ एक मेथड बनाना है जिसमें अलग-अलग सिग्नेचर हों।
36) किसी विधि को ओवरलोड करने के विभिन्न तरीके क्या हैं?
किसी पैरामीटर के लिए विभिन्न डेटा प्रकारों, पैरामीटरों के विभिन्न क्रम, तथा पैरामीटरों की विभिन्न संख्याओं का उपयोग करके विधियों को ओवरलोड किया जा सकता है।
37) आप इंटरफ़ेस के अंदर विधियों के लिए एक्सेसिबिलिटी संशोधक निर्दिष्ट क्यों नहीं कर सकते?
इंटरफ़ेस में, हमारे पास वर्चुअल विधियाँ होती हैं, जिनमें विधि परिभाषा नहीं होती। सभी विधियाँ व्युत्पन्न वर्ग में ओवरराइड की जाती हैं। इसलिए वे सभी सार्वजनिक हैं।
38) हम क्लास को इनहेरिट करने के लिए कैसे सेट कर सकते हैं, लेकिन विधि को ओवरराइड होने से कैसे रोक सकते हैं?
क्लास को सार्वजनिक घोषित करें और विधि को सीलबंद करें ताकि इसे ओवरराइड होने से रोका जा सके।
39) यदि विरासत में प्राप्त इंटरफेस में परस्पर विरोधी विधि नाम हों तो क्या होगा?
कार्यान्वयन आपके ऊपर है क्योंकि विधि आपकी अपनी कक्षा के अंदर है। जब विभिन्न इंटरफेस से विधियाँ अलग-अलग डेटा की अपेक्षा करती हैं तो समस्या हो सकती है, लेकिन जहाँ तक कंपाइलर की बात है तो आप ठीक हैं।
40) स्ट्रक्चर और क्लास में क्या अंतर है?
स्ट्रक्चर्स वैल्यू-टाइप वैरिएबल हैं, और क्लासेस रेफरेंस टाइप हैं। स्टैक पर संग्रहीत स्ट्रक्चर्स अतिरिक्त ओवरहेड का कारण बनते हैं लेकिन तेज़ पुनर्प्राप्ति करते हैं। स्ट्रक्चर्स को विरासत में नहीं लिया जा सकता है।
41) .Net में नलएबल प्रकारों का उपयोग कैसे करें?
मान प्रकार या तो अपना सामान्य मान ले सकते हैं या शून्य मान ले सकते हैं। ऐसे प्रकारों को शून्य प्रकार कहा जाता है।
Int? someID = null; If(someID.HasVAlue) { }
42) हम गैर-डिफ़ॉल्ट मानों के साथ एक सारणी कैसे बना सकते हैं?
हम Enumerable.Repeat का उपयोग करके गैर-डिफ़ॉल्ट मानों के साथ एक सारणी बना सकते हैं।
43) C# में “is” और “as” ऑपरेटरों के बीच क्या अंतर है?
“is” ऑपरेटर का उपयोग किसी ऑब्जेक्ट की किसी दिए गए प्रकार के साथ संगतता की जांच करने के लिए किया जाता है, और यह परिणाम को बूलियन के रूप में लौटाता है।
“as” ऑपरेटर का उपयोग किसी ऑब्जेक्ट को किसी प्रकार या क्लास में कास्ट करने के लिए किया जाता है।
44) मल्टीकास्ट डेलीगेट क्या है?
एक डेलीगेट जिसमें कई हैंडलर असाइन किए गए हों, उसे मल्टीकास्ट डेलीगेट कहा जाता है। प्रत्येक हैंडलर को एक मेथड असाइन किया जाता है।
45) C# .NET में इंडेक्सर्स क्या हैं?
इंडेक्सर्स को स्मार्ट माना जाता है C# में सारणीयह किसी क्लास के उदाहरणों को सरणी के समान ही अनुक्रमित करने की अनुमति देता है।
उदाहरण के लिए:
public int this[int index] // Indexer declaration
46) .NET में “थ्रो” और “थ्रो एक्स” के बीच क्या अंतर है?
“थ्रो” कथन मूल त्रुटि स्टैक को सुरक्षित रखता है जबकि “थ्रो एक्स” में उनके थ्रो पॉइंट से स्टैक ट्रेस होता है। हमेशा “थ्रो” का उपयोग करने की सलाह दी जाती है क्योंकि यह अधिक सटीक त्रुटि जानकारी प्रदान करता है।
47) C# विशेषताएँ और इसका महत्व क्या है?
C# डेवलपर्स को कुछ इकाइयों पर घोषणात्मक टैग परिभाषित करने का एक तरीका प्रदान करता है, जैसे कि क्लास, विधि, आदि को विशेषताएँ कहा जाता है। विशेषता की जानकारी को रिफ्लेक्शन का उपयोग करके रनटाइम पर प्राप्त किया जा सकता है।
48) C# में सिंगलटन डिज़ाइन पैटर्न कैसे लागू करें?
सिंगलटन पैटर्न में, एक क्लास का केवल एक ही इंस्टैंस हो सकता है और वह वैश्विक स्तर पर उस तक पहुंच बिंदु प्रदान करता है।
उदाहरण के लिए:
Public sealed class Singleton { Private static readonly Singleton _instance = new Singleton(); }
49) डायरेक्टकास्ट और सीटीइपी में क्या अंतर है?
डायरेक्टकास्ट का उपयोग उस ऑब्जेक्ट के प्रकार को परिवर्तित करने के लिए किया जाता है जिसके लिए रन-टाइम प्रकार को डायरेक्टकास्ट में निर्दिष्ट प्रकार के समान होना आवश्यक होता है।
Ctype का उपयोग रूपांतरण के लिए किया जाता है, जहां अभिव्यक्ति और प्रकार के बीच रूपांतरण परिभाषित किया जाता है।
50) क्या C# कोड प्रबंधित या अप्रबंधित कोड है?
C# प्रबंधित कोड है क्योंकि सामान्य भाषा रनटाइम C# कोड को मध्यवर्ती भाषा में संकलित कर सकता है।
51) कंसोल एप्लीकेशन क्या है?
कंसोल अनुप्रयोग एक ऐसा अनुप्रयोग है जिसे कमांड प्रॉम्प्ट में चलाया जा सकता है. Windows. किसी के लिए .Net पर शुरुआती, कंसोल एप्लिकेशन का निर्माण करना आदर्श रूप से पहला कदम है।
52) कतार से किसी तत्व को हटाने का एक उदाहरण दीजिए
डिक्यू विधि का उपयोग कतार से किसी तत्व को हटाने के लिए किया जाता है।
using System; using System.Collections; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Program { static void Main(string[] args) { Queue qt = new Queue(); qt.Enqueue(1); qt.Enqueue(2); qt.Enqueue(3); foreach (Object obj in qt) { Console.WriteLine(obj); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("The number of elements in the Queue " + qt.Count); Console.WriteLine("Does the Queue contain " + qt.Contains(3)); Console.ReadKey(); } } }
ये साक्षात्कार प्रश्न आपके मौखिक (मौखिक) में भी मदद करेंगे