C# एक स्टैटिक टाइप वाली भाषा है। इसका मतलब है कि कंपाइल के समय हर चीज़ का एक टाइप होता है। किसी नाम को वैल्यू असाइन करने को वेरिएबल बनाना कहते हैं। वेरिएबल बनाने के दो तरीके हैं: या तो आप उसका टाइप साफ-साफ बताएँ, या C# कंपाइलर को असाइन की गई वैल्यू के आधार पर खुद उसका टाइप अनुमान लगाने दें (इसे टाइप इन्फरेंस कहते हैं)। इसलिए नीचे दी गई दोनों वेरिएबल परिभाषाएँ एक ही हैं:
int explicitVar = 10; // Explicitly typed
var implicitVar = 10; // Implicitly typed
वेरिएबल की वैल्यू बदलने के लिए = ऑपरेटर इस्तेमाल किया जाता है। एक बार बन जाने के बाद वेरिएबल का टाइप कभी नहीं बदल सकता।
var count = 1; // Assign initial value
count = 2; // Update to new value
// Compiler error when assigning different type
// count = false;
C# एक ऑब्जेक्ट-ओरिएंटेड भाषा है और इसमें हर फंक्शन को एक क्लास के अंदर बनाना ज़रूरी होता है। क्लास बनाने के लिए class कीवर्ड का इस्तेमाल किया जाता है। ऑब्जेक्ट (या इंस्टेंस) new कीवर्ड से बनाए जाते हैं।
class Calculator
{
// ...
}
var calculator = new Calculator();
क्लास के अंदर लिखे फंक्शन को मेथड कहते हैं। हर मेथड में शून्य या उससे अधिक पैरामीटर हो सकते हैं। सभी पैरामीटर का टाइप साफ-साफ बताना ज़रूरी है, पैरामीटर के लिए टाइप इन्फरेंस नहीं होता। इसी तरह रिटर्न टाइप भी साफ-साफ बताना पड़ता है। मेथड return कीवर्ड की मदद से वैल्यू लौटाते हैं। अगर आप चाहते हैं कि दूसरी फाइलों का कोड भी मेथड को कॉल कर सके, तो public एक्सेस मॉडिफायर जोड़ना पड़ता है।
class Calculator
{
public int Add(int x, int y)
{
return x + y;
}
}
मेथड को किसी इंस्टेंस पर डॉट (.) सिंटैक्स से कॉल किया जाता है: कॉल करने के लिए मेथड का नाम लिखा जाता है और मेथड के हर पैरामीटर के लिए आर्गुमेंट पास किए जाते हैं। आर्गुमेंट में आप चाहें तो उससे जुड़े पैरामीटर का नाम भी बता सकते हैं।
var calculator = new Calculator();
var sum_v1 = calculator.Add(1, 2);
var sum_v2 = calculator.Add(x: 1, y: 2);
C# में स्कोप { और } के बीच तय होता है।
C# में दो तरह के कमेंट लिखे जा सकते हैं। एक लाइन के कमेंट से पहले // लगाया जाता है, और कई लाइनों वाले कमेंट /* और */ के बीच लिखे जाते हैं।
लूसियन की प्रेमिका घर लौट रही है, और उसने उनकी सालगिरह का खाना अब तक नहीं बनाया है!
इस अभ्यास में आप कुछ कोड लिखेंगे, जिससे लूसियन को अपनी पसंदीदा रेसिपी की किताब से एक बढ़िया लज़ान्या बनाने में मदद मिलेगी।
आपके सामने चार काम हैं, और चारों लज़ान्या पकाने में लगने वाले समय से जुड़े हैं।
Lasagna.ExpectedMinutesInOven() मेथड बनाइए, जो कोई पैरामीटर नहीं लेता और बताता है कि लज़ान्या को ओवन में कितने मिनट रहना चाहिए। कुकबुक के अनुसार ओवन में लगने वाला अपेक्षित समय 40 मिनट है:
var lasagna = new Lasagna();
lasagna.ExpectedMinutesInOven();
// => 40
Lasagna.RemainingMinutesInOven() मेथड बनाइए, जो पैरामीटर के रूप में वे वास्तविक मिनट लेता है जितनी देर लज़ान्या ओवन में रही है, और पिछले काम में तय किए गए अपेक्षित ओवन समय के आधार पर बताता है कि लज़ान्या को ओवन में अभी कितने मिनट और रहना है।
var lasagna = new Lasagna();
lasagna.RemainingMinutesInOven(30);
// => 10
Lasagna.PreparationTimeInMinutes() मेथड बनाइए, जो पैरामीटर के रूप में लज़ान्या में डाली गई परतों की संख्या लेता है और बताता है कि लज़ान्या तैयार करने में आपने कितने मिनट लगाए। यह मान लीजिए कि हर परत तैयार करने में आपको 2 मिनट लगते हैं।
var lasagna = new Lasagna();
lasagna.PreparationTimeInMinutes(2);
// => 4
Lasagna.ElapsedTimeInMinutes() मेथड बनाइए, जो दो पैरामीटर लेता है: पहला पैरामीटर लज़ान्या में डाली गई परतों की संख्या है, और दूसरा पैरामीटर वे मिनट हैं जितनी देर लज़ान्या ओवन में रही है। यह फंक्शन लौटाता है कि लज़ान्या पकाने में आपने कुल कितने मिनट काम किया। यह संख्या तैयारी में लगे मिनटों और उस समय के मिनटों का जोड़ है, जो लज़ान्या ने उस पल तक ओवन में बिताया है।
var lasagna = new Lasagna();
lasagna.ElapsedTimeInMinutes(3, 20);
// => 26
Exercism पर साइन अप कीजिए और C# को 62 कॉन्सेप्ट178 अभ्यास तथा असली इंसानों से मिलने वाली मेंटरिंग के साथ सीखिए और उसमें महारत हासिल कीजिए, वह भी बिल्कुल मुफ्त।