paint-brush
सी#: बुनियादी बातों से लेकर उन्नत तकनीकों तक - एक शुरुआती-अनुकूल चीटशीटद्वारा@ssukhpinder
3,465 रीडिंग
3,465 रीडिंग

सी#: बुनियादी बातों से लेकर उन्नत तकनीकों तक - एक शुरुआती-अनुकूल चीटशीट

द्वारा Sukhpinder Singh16m2024/03/24
Read on Terminal Reader

बहुत लंबा; पढ़ने के लिए

व्यापक सी# चीट शीट डेवलपर्स को सी# प्रोग्रामिंग से संबंधित मुख्य सिंटैक्स और अवधारणाओं में महारत हासिल करने में सहायता करने के लिए डिज़ाइन की गई है।
featured image - सी#: बुनियादी बातों से लेकर उन्नत तकनीकों तक - एक शुरुआती-अनुकूल चीटशीट
Sukhpinder Singh HackerNoon profile picture
0-item
1-item
2-item

व्यापक सी# चीट शीट डेवलपर्स को सी# प्रोग्रामिंग से संबंधित मुख्य सिंटैक्स और अवधारणाओं में महारत हासिल करने में सहायता करने के लिए डिज़ाइन की गई है।

अंतर्वस्तु

  1. बुनियादी संरचना
  2. डेटा के प्रकार
  3. चर
  4. स्थिरांक
  5. सशर्त बयान
  6. छोरों
  7. सरणियों
  8. सूचियों
  9. शब्दकोश:
  10. तरीकों
  11. कक्षाएँ एवं वस्तुएँ
  12. एक्सेप्शन हेंडलिंग
  13. प्रतिनिधि, कार्यक्रम और लैम्ब्डा
  14. LINQ (भाषा-एकीकृत क्वेरी)
  15. गुण
  16. Async/प्रतीक्षा करें
  17. मिश्रित
  18. स्ट्रिंग हेरफेर
  19. फ़ाइल I/O
  20. दिनांक समय
  21. जेनेरिक्स
  22. अशक्त
  23. गुण और प्रतिबिंब
  24. विस्तार के तरीके
  25. डिपेंडेंसी इंजेक्शन
  26. आंशिक कक्षाएं
  27. इंटरोऑपरेबिलिटी
  28. अनाम प्रकार
  29. टुपल्स
  30. पैटर्न मिलान
  31. स्थानीय कार्य
  32. अभिलेख
  33. अभिव्यक्ति के साथ
  34. इंडेक्सर्स और रेंज
  35. घोषणा का उपयोग करना
  36. निरर्थक संदर्भ प्रकार (एनआरटी)
  37. पैटर्न-आधारित उपयोग
  38. संपत्ति पैटर्न
  39. डिफ़ॉल्ट इंटरफ़ेस कार्यान्वयन
  40. गतिशील बंधन

1. मूल संरचना

सभी C# प्रोग्राम एक मौलिक संरचना का पालन करते हैं, जो नीचे उल्लिखित है:

 using System; public class HelloWorld { public static void Main(string[] args) { Console.WriteLine("Hello, World!"); } }


.NET 5 से शुरू करके, शीर्ष-स्तरीय कथन प्रोग्राम.cs सामग्री को सरल बनाते हैं:

 Console.WriteLine("Hello, World");

2. डेटा प्रकार

C# विभिन्न डेटा प्रकारों का समर्थन करता है जैसे:

  • मान प्रकार: int, char, और फ़्लोट
  • संदर्भ प्रकार: स्ट्रिंग, वर्ग और सरणी

3. चर

चर मानों के प्रतीकात्मक नाम हैं:

 int age = 30; // integer variable string name = "John"; // string variable double PI = 3.14159; // double for floating-point numbers bool isLoggedIn = true; // boolean variable

प्रकार अनुमान के लिए 'var' का प्रयोग करें:

 var number = 5; // compiler infers type as int var message = "This is a message"; // compiler infers type as string

4. स्थिरांक

स्थिरांक अपरिवर्तनीय मान रखते हैं:

 const double GRAVITY = 9.81; // constant for gravitational acceleration const string COMPANY_NAME = "MyCompany"; // constant company name

5. सशर्त कथन

शर्तों के आधार पर नियंत्रण कार्यक्रम प्रवाह:

 int age = 20; if (age >= 18) { Console.WriteLine("You are eligible to vote."); } else { Console.WriteLine("You are not eligible to vote."); } switch (variable) { /*...*/ } // Switch statement

6. लूप्स

कोड को बार-बार निष्पादित करें:

 for (int i = 1; i <= 5; i++) { Console.WriteLine(i); } foreach (var item in collection) { /*...*/ } // Foreach loop while (condition) { /*...*/ } // While loop do { /*...*/ } while (condition); // Do-while loop

7. सारणियाँ

तत्वों का निश्चित आकार का संग्रह:

 string[] names = new string[3] { "Alice", "Bob", "Charlie" }; Console.WriteLine(names[1]); // Output: Bob (accessing element at index 1)

8. सूचियाँ

सरणियों के समान गतिशील संग्रह:

 List<int> numbers = new List<int>(); numbers.Add(1); numbers.Add(2); numbers.Add(3); foreach (var number in numbers) { Console.WriteLine(number); }

9. शब्दकोश

डेटा एसोसिएशन के लिए कुंजी-मूल्य जोड़े:

 Dictionary<string, string> phonebook = new Dictionary<string, string>(); phonebook.Add("John Doe", "123-456-7890"); phonebook.Add("Jane Doe", "987-654-3210"); Console.WriteLine(phonebook["John Doe"]); // Output: 123-456-7890

10. तरीके

पुन: प्रयोज्य तर्क को संपुटित करें:

 public class Rectangle { public double Width { get; set; } public double Height { get; set; } public double GetArea() { return Width * Height; } } public class Program { public static void Main(string[] args) { Rectangle rect = new Rectangle(); rect.Width = 5; rect.Height = 10; double area = rect.GetArea(); Console.WriteLine($"Area of rectangle: {area}"); } }

11. कक्षाएं और वस्तुएं

कक्षाएं वस्तुओं के लिए ब्लूप्रिंट परिभाषित करती हैं:

 public class MyClass // Class definition { public string PropertyName { get; set; } // Properties store data public void MethodName() { /*...*/ } // Methods define actions } MyClass obj = new MyClass(); // Object creation

12. अपवाद हैंडलिंग

रनटाइम त्रुटियों को शालीनता से प्रबंधित करें:

 public static int GetNumberInput() { while (true) { try { Console.WriteLine("Enter a number: "); string input = Console.ReadLine(); return int.Parse(input); } catch (FormatException) { Console.WriteLine("Invalid input. Please enter a number."); } } } public static void Main(string[] args) { int number = GetNumberInput(); Console.WriteLine($"You entered: {number}"); }

13. प्रतिनिधि, कार्यक्रम और लैम्ब्डा

इवेंट-संचालित प्रोग्रामिंग और विधि प्रबंधन के लिए:

 public delegate void MyDelegate(); // Delegate declaration event MyDelegate MyEvent; // Event declaration public class Person { public string Name { get; set; } public int Age { get; set; } } public static void Main(string[] args) { List<Person> people = new List<Person>() { new Person { Name = "Alice", Age = 30 }, new Person { Name = "Bob", Age = 25 }, new Person { Name = "Charlie", Age = 40 }, }; people.Sort((p1, p2) => p1.Name.CompareTo(p2.Name)); foreach (var person in people) { Console.WriteLine(person.Name); // Output: Alice, Bob, Charlie (sorted by name) } }

14. LINQ (भाषा-एकीकृत क्वेरी)

डेटा हेरफेर के लिए क्वेरी क्षमताएं:

 using System.Linq; public static void Main(string[] args) { List<int> numbers = new List<int>() { 1, 2, 3, 4, 5, 6 }; var evenNumbers = numbers.Where(x => x % 2 == 0); foreach (var number in evenNumbers) { Console.WriteLine(number); // Output: 2, 4, 6 } }

15. गुण

कोड तत्वों में मेटाडेटा जोड़ें:

 [Obsolete("Use the new DoSomethingV2 method instead.")] public void DoSomething() { // Implementation here } public void DoSomethingV2() { // New and improved implementation }

16. एसिंक/प्रतीक्षा करें

गैर-अवरुद्ध कोड निष्पादन के लिए:

 using System.Threading.Tasks; public static async Task DownloadFileAsync(string url, string filePath) { // Simulate downloading data asynchronously await Task.Delay(2000); // Simulate a 2-second download // Write downloaded data to the file File.WriteAllText(filePath, "Downloaded content"); Console.WriteLine($"File downloaded to: {filePath}"); } public static void Main(string[] args) { string url = "https://example.com/data.txt"; string filePath = "downloaded_data.txt"; DownloadFileAsync(url, filePath); // Continue program execution while download happens in the background Console.WriteLine("Downloading file..."); Console.WriteLine("Meanwhile, you can do other things..."); }

17. विविध

अतिरिक्त भाषा सुविधाएँ:

  • एनम, इंटरफ़ेस, क्लास, रिकॉर्ड और संरचना


  • गतिशील, is, as, var, और nameof

18. स्ट्रिंग हेरफेर

शक्तिशाली स्ट्रिंग हैंडलिंग विधियाँ:

 string.Concat(); // Combine strings string.Join(); // Join elements str.Split(); // Split string str.ToUpper(); // Convert to uppercase str.ToLower(); // Convert to lowercase

19. फ़ाइल I/O

फ़ाइलों के साथ संचालन:

 using System.IO; // Required for File I/O File.ReadAllText(path); // Read file content File.WriteAllText(path, content); // Write to file File.Exists(path); // Check file existence

20. दिनांक एवं समय

दिनांक और समय में हेरफेर:

 using System; public static void Main(string[] args) { DateTime startDate = DateTime.Parse("2024-03-10"); DateTime endDate = DateTime.Now; TimeSpan difference = endDate - startDate; Console.WriteLine($"Time difference: {difference.Days} days, {difference.Hours} hours"); }

21. जेनेरिक

प्रकार-सुरक्षित डेटा संरचनाएँ:

 public class Stack<T> { private List<T> items = new List<T>(); public void Push(T item) { items.Add(item); } public T Pop() { T item = items[items.Count - 1]; items.RemoveAt(items.Count - 1); return item; } } public static void Main(string[] args) { Stack<string> messages = new Stack<string>(); messages.Push("Hello"); messages.Push("World"); string message = messages.Pop(); Console.WriteLine(message); // Output: World }

22. अशक्त

मान प्रकार को शून्य होने दें:

 int? nullableInt = null; // Nullable integer

23. गुण और प्रतिबिंब

मेटाडेटा और प्रकार आत्मनिरीक्षण:

 public class Person { public string Name { get; set; } public int Age { get; set; } } public static void Main(string[] args) { Type personType = typeof(Person); PropertyInfo[] properties = personType.GetProperties(); foreach (PropertyInfo property in properties) { Console.WriteLine(property.Name); // Output: Name, Age } }

24. विस्तार विधियाँ

मौजूदा प्रकारों में विधियाँ जोड़ें:

 public static class StringExtensions { public static string ToUppercase(this string str) { return str.ToUpper(); } } public static void Main(string[] args) { string message = "Hello, world!"; string uppercased = message.ToUppercase(); // Using the extension method Console.WriteLine(uppercased); // Output: HELLO, WORLD! }

25. निर्भरता इंजेक्शन

शिथिल युग्मित कोड डिज़ाइन:

 public interface ILogger { void LogMessage(string message); } public class MyService { private readonly ILogger _logger; public MyService(ILogger logger) { _logger = logger; } public void DoSomething() { _logger.LogMessage("Doing something..."); } } // Implementing the ILogger interface (example) public class ConsoleLogger : ILogger { public void LogMessage(string message) { Console.WriteLine(message); } } public static void Main(string[] args) { ILogger logger = new ConsoleLogger(); MyService service = new MyService(logger); service.DoSomething(); }

26. आंशिक कक्षाएं

एकल वर्ग परिभाषा को विभाजित करना:

 public partial class MyClass { /*...*/ } // Partial class definition

27. अंतरसंचालनीयता

अन्य भाषाओं के साथ इंटरऑप:

 using System; using System.Runtime.InteropServices; [DllImport("user32.dll")] public static extern int MessageBox(IntPtr hWnd, string lpText, string lpCaption, uint uType); public static void Main(string[] args) { MessageBox(IntPtr.Zero, "Hello from C#!", "Interop Example", 0); }

28. अज्ञात प्रकार

अनाम प्रकार बनाना:csharpCopy कोड

 var person = new { Name = "John", Age = 30 }; Console.WriteLine($"Name: {person.Name}, Age: {person.Age}");

29. टुपल

तत्वों की विशिष्ट संख्या के साथ डेटा संरचनाएँ:

 (string Name, int Age) person = ("Alice", 30); Console.WriteLine($"Name: {person.Name}, Age: {person.Age}"); // Accessing elements using Item1 and Item2

30. पैटर्न मिलान

कुछ प्रोग्रामिंग कार्यों को सरल बनाता है:

 object obj = new Person { Name = "Bob", Age = 25 }; if (obj is Person { Name: "Bob", Age >= 18 }) { Console.WriteLine("Bob is an adult."); }

31. स्थानीय कार्य

विधियों के भीतर तर्क को संपुटित करें:

 public static int Calculate(int number) { int Factorial(int n) { if (n == 0) return 1; return n * Factorial(n - 1); } return Factorial(number); } public static void Main(string[] args) { int result = Calculate(5); Console.WriteLine($"5! = {result}"); }

32. अभिलेख

संदर्भ प्रकारों के लिए संक्षिप्त वाक्यविन्यास:

 public record Person(string Name, int Age); public static void Main(string[] args) { Person person1 = new Person("Alice", 30); Person person2 = new Person("Alice", 30); // Records provide default equality comparison if (person1 == person2) { Console.WriteLine("People are equal"); } }

33. अभिव्यक्ति के साथ

अभिलेखों के लिए गैर-विनाशकारी उत्परिवर्तन:

 var john = new Person("John", 30); var jane = john with { Name = "Jane" }; // Non-destructive mutation

34. इंडेक्सर्स और रेंज

लचीली डेटा पहुंच:

 int[] arr = {0, 1, 2, 3, 4, 5}; var subset = arr[1..^1]; // Indexer and range usage

35. घोषणा का उपयोग करना

आईडीडिस्पोज़ेबल वस्तुओं का निपटान:

 using var reader = new StreamReader("file.txt"); // using declaration

36. निरर्थक संदर्भ प्रकार (एनआरटी)

शून्य संदर्भ अपवादों से बचें:

 public class Person { public string Name { get; set; } public int Age { get; set; } } public static void Main(string[] args) { Person person = new Person() { Age = 30 }; // NRTs require null checks before accessing properties if (person?.Name != null) { Console.WriteLine(person.Name); } else { Console.WriteLine("Name is null"); } }

37. पैटर्न-आधारित उपयोग

प्रयोग कथन में अधिक पैटर्न:

 public ref struct ResourceWrapper { /*...*/ } // Resource wrapper using var resource = new ResourceWrapper(); // Pattern-based using

38. संपत्ति पैटर्न

पैटर्न मिलान में वस्तुओं का पुनर्निर्माण करें:

 if (obj is Person { Name: "John", Age: var age }) { /*...*/ } // Property pattern matching

39. डिफ़ॉल्ट इंटरफ़ेस कार्यान्वयन

डिफ़ॉल्ट विधि कार्यान्वयन वाले इंटरफ़ेस:

 public interface IPerson { /*...*/ } // Interface with default method public class MyClass : IPerson { /*...*/ } // Class implementing interface

40. गतिशील बंधन

रनटाइम प्रकार रिज़ॉल्यूशन:

 dynamic d = 5; // Dynamic binding d = "Hello"; // No compile-time type checking

निष्कर्ष

यह संरचित सी# चीट शीट उन्नत विषयों और तकनीकों के साथ समाप्त होती है, जो अपने सी# प्रोग्रामिंग कौशल को बढ़ाने का लक्ष्य रखने वाले डेवलपर्स के लिए एक व्यापक संदर्भ प्रदान करती है। विस्तृत उदाहरणों और आगे की खोज के लिए, इस गाइड में उल्लिखित विशिष्ट अनुभाग देखें। हैप्पी कोडिंग!

सी# प्रोग्रामिंग🚀

C# समुदाय का हिस्सा बनने के लिए धन्यवाद! आपके जाने से पहले:

यदि आप यहां तक पहुंच गए हैं, तो कृपया ताली बजाकर अपनी सराहना व्यक्त करें और लेखक का अनुसरण करें! 👏️️

हमारा अनुसरण करें: एक्स | लिंक्डइन | देव.तो | हैशनोड | न्यूज़लैटर | Tumblr

हमारे अन्य प्लेटफ़ॉर्म पर जाएँ: GitHub | इंस्टाग्राम | टिकटॉक | Quora | दैनिक.देव

से प्रेरित: https://zerotomastery.io/cheatशीट्स /csharp-cheat-शीट/#constents


यहाँ भी प्रकाशित किया गया