लोड हो रहा है...

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

C# में डेटा टाइप संदर्भ (Data Type Reference) प्रोग्रामिंग की नींव है, जो यह निर्धारित करता है कि डेटा को मेमोरी में कैसे स्टोर किया जाए, उस पर कौन-कौन से ऑपरेशन लागू होंगे, और रनटाइम के दौरान डेटा की अखंडता कैसे सुरक्षित रहेगी। C# में मुख्य रूप से दो प्रकार के डेटा टाइप होते हैं: वैल्यू टाइप (Value Types) जैसे int, double, bool और रेफरेंस टाइप (Reference Types) जैसे string, arrays और collections। डेटा टाइप संदर्भ को समझना आवश्यक है क्योंकि यह एप्लिकेशन की परफॉर्मेंस, मेमोरी प्रबंधन और कोड की सुरक्षा पर सीधे प्रभाव डालता है।
डेवलपमेंट में डेटा टाइप संदर्भ का उपयोग तब किया जाता है जब हमें वैरिएबल्स की घोषणा करनी होती है, एल्गोरिदम लागू करने होते हैं, डेटा स्ट्रक्चर प्रबंधित करने होते हैं, और ऑब्जेक्ट-ओरिएंटेड प्रिंसिपल्स (OOP) जैसे इनकैप्सुलेशन, इनहेरिटेंस और पॉलीमॉर्फिज़्म को लागू करना होता है। इस संदर्भ में पाठक सीखेंगे कि वैल्यू और रेफरेंस टाइप्स का सही उपयोग कैसे करें, जेनरिक collections और nullable टाइप्स का प्रबंधन कैसे करें, और C# में मेमोरी दक्षता के लिए बेहतरीन प्रैक्टिसेज क्या हैं। यह ज्ञान विशेष रूप से बड़े सॉफ़्टवेयर सिस्टम और एंटरप्राइज लेवल एप्लिकेशन आर्किटेक्चर के लिए आवश्यक है।

मूल उदाहरण

text
TEXT Code
using System;
using System.Collections.Generic;

namespace DataTypeReferenceExample
{
class Program
{
static void Main(string\[] args)
{
// वैल्यू टाइप्स
int संख्या = 42;
double मूल्य = 99.99;
bool सक्रिय = true;

// रेफरेंस टाइप्स
string नाम = "C# डेवलपर";
int[] अंक = new int[] { 85, 90, 95 };
List<string> कौशल = new List<string> { "OOP", "LINQ", "Async" };

// Nullable टाइप
int? nullableसंख्या = null;

// आउटपुट
Console.WriteLine($"संख्या: {संख्या}, मूल्य: {मूल्य}, सक्रिय: {सक्रिय}");
Console.WriteLine($"नाम: {नाम}");
Console.WriteLine("अंक: " + string.Join(", ", अंक));
Console.WriteLine("कौशल: " + string.Join(", ", कौशल));
Console.WriteLine($"Nullable मान: {nullableसंख्या?.ToString() ?? "कोई मान नहीं"}");
}
}

}

इस उदाहरण में हमने वैल्यू टाइप्स (int, double, bool) और रेफरेंस टाइप्स (string, arrays, List) के बीच अंतर दिखाया है। वैल्यू टाइप्स स्टैक में स्टोर होते हैं और कॉपी किए जाते हैं, जबकि रेफरेंस टाइप्स हीप में स्टोर होते हैं और उनकी reference को manage किया जाता है। Nullable टाइप्स (int?) ऐसे मामलों में उपयोगी हैं जहां मान मौजूद नहीं हो सकता, जैसे डेटाबेस कॉल या API प्रतिक्रिया। List और string.Join का उपयोग कलेक्शंस को आसानी से प्रदर्शित करने के लिए किया गया है। यह कोड C# स्टाइल और कन्वेंशन का पालन करता है, और मेमोरी सुरक्षित और maintainable है।

व्यावहारिक उदाहरण

text
TEXT Code
using System;
using System.Collections.Generic;

namespace DataTypeReferencePractical
{
class कर्मचारी
{
public string नाम { get; set; }
public int आयु { get; set; }
public decimal वेतन { get; set; }
}

class Program
{
static void Main()
{
List<कर्मचारी> कर्मचारीसूची = new List<कर्मचारी>
{
new कर्मचारी { नाम = "अलिस", आयु = 30, वेतन = 60000 },
new कर्मचारी { नाम = "बॉब", आयु = 45, वेतन = 80000 },
new कर्मचारी { नाम = "चार्ली", आयु = 25, वेतन = 50000 }
};

// वेतन के अनुसार सॉर्टिंग
कर्मचारीसूची.Sort((k1, k2) => k1.वेतन.CompareTo(k2.वेतन));

foreach (var k in कर्मचारीसूची)
{
Console.WriteLine($"नाम: {k.नाम}, आयु: {k.आयु}, वेतन: {k.वेतन:C}");
}
}
}

}

Advanced C# Implementation

text
TEXT Code
using System;
using System.Collections.Generic;
using System.Linq;

namespace DataTypeReferenceAdvanced
{
class कर्मचारी
{
public string नाम { get; set; }
public int आयु { get; set; }
public decimal वेतन { get; set; }

public कर्मचारी(string नाम, int आयु, decimal वेतन)
{
this.नाम = नाम;
this.आयु = आयु;
this.वेतन = वेतन;
}
}

class Program
{
static void Main()
{
List<कर्मचारी> कर्मचारीसूची = new List<कर्मचारी>
{
new कर्मचारी("अलिस", 30, 60000),
new कर्मचारी("बॉब", 45, 80000),
new कर्मचारी("चार्ली", 25, 50000),
new कर्मचारी("डायने", 35, 70000)
};

try
{
var उच्चवेतन = कर्मचारीसूची.Where(k => k.वेतन > 60000)
.OrderByDescending(k => k.वेतन)
.ToList();

foreach (var k in उच्चवेतन)
{
Console.WriteLine($"उच्च वेतन: {k.नाम}, वेतन: {k.वेतन:C}");
}
}
catch (Exception ex)
{
Console.WriteLine($"त्रुटि: {ex.Message}");
}
}
}

}

डेटा टाइप संदर्भ के लिए C# की बेहतरीन प्रैक्टिसेज में सही टाइप का चयन, मेमोरी दक्षता, और maintainable कोड लिखना शामिल है। वैल्यू टाइप्स छोटे और immutable डेटा के लिए उपयुक्त हैं, जबकि रेफरेंस टाइप्स जटिल ऑब्जेक्ट्स और डेटा शेयरिंग के लिए। Nullable टाइप्स, LINQ और जेनरिक कलेक्शंस का सही उपयोग सुरक्षा और प्रदर्शन दोनों बढ़ाता है। प्रदर्शन सुधार के लिए struct का चयन, लूप्स में ऑब्जेक्ट्स की न्यूनतम क्रिएशन और उचित कलेक्शन का उपयोग (List vs Dictionary) महत्वपूर्ण है। सुरक्षा में इनपुट वेलिडेशन और संवेदनशील डेटा की सुरक्षा शामिल है। इन प्रैक्टिसेज का पालन करने से स्थिर, कुशल और maintainable C# एप्लिकेशन बनती हैं।

📊 संपूर्ण संदर्भ

C# Element/Method Description Syntax Example Notes
int 32-बिट पूर्णांक int x = 10; int संख्या = 100; मानक वैल्यू टाइप
double डबल प्रिसिजन double d = 3.14; double pi = 3.14159; उच्च सटीकता
bool बूलियन bool flag = true; bool सक्रिय = false; true/false
char एकल अक्षर char c = 'A'; char नोट = 'B'; एक अक्षर
string स्ट्रिंग string s = "Text"; string नाम = "अलिस"; रेफरेंस टाइप, immutable
object सभी प्रकार का बेस object obj = 123; object डेटा = "नमस्ते"; किसी भी प्रकार को रख सकता है
decimal सटीक दशमलव decimal पैसा = 100.50m; decimal मूल्य = 19.99m; वित्तीय मान
float सिंगल प्रिसिजन float f = 1.23f; float दर = 0.05f; कम सटीकता
long 64-बिट पूर्णांक long l = 1234567890L; long दूरी = 5000000000L; बड़े नंबर
short 16-बिट पूर्णांक short s = 32000; short तापमान = 150; कंपैक्ट वैल्यू
byte 8-बिट पूर्णांक byte b = 255; byte उम्र = 25; स्मृति कुशल
sbyte 8-बिट साइन sbyte sb = -128; sbyte ऑफ़सेट = -50; कम उपयोग में
uint 32-बिट unsigned uint u = 4000; uint गिनती = 1000; केवल पॉज़िटिव
ulong 64-बिट unsigned ulong ul = 100000; ulong बड़ा_मान = 1000000; बड़े पॉज़िटिव
ushort 16-बिट unsigned ushort us = 60000; ushort ऊंचाई = 55000; छोटे पॉज़िटिव
int? Nullable int int? x = null; int? परिणाम = null; मान null हो सकता है
List<T> Generic List List<int> numbers = new List<int>(); List<string> नाम = new List<string>(); Dynamic Collection
Dictionary\<K,V> Key-Value Collection Dictionary\<string,int> dict = new Dictionary\<string,int>(); Dictionary\<string,string> राज्य = new Dictionary\<string,string>(); Map Key-Value
Array Fixed Size Array int\[] arr = new int\[5]; string\[] फल = { "सेब", "केला" }; Index Access
Tuple Immutable Tuple var tuple = Tuple.Create(1,"A"); var व्यक्ति = Tuple.Create("अलिस",25); Temporary Group
var Type Inference var x = 10; var कुल = 100; Auto-detected type
dynamic Dynamic Type dynamic obj = 1; dynamic मान = "नमस्ते"; Type checked at runtime
object\[] Array of objects object\[] arr = new object\[5]; object\[] items = {1,"A",true}; Mixed types
StringBuilder Mutable String StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder("नमस्ते"); Large strings
DateTime Date & Time DateTime dt = DateTime.Now; DateTime आज = DateTime.Today; Immutable
TimeSpan Time Interval TimeSpan ts = new TimeSpan(1,2,3); TimeSpan अवधि = TimeSpan.FromHours(5); Difference of two dates
Guid Global Unique ID Guid id = Guid.NewGuid(); Guid token = Guid.NewGuid(); Object identification

📊 Complete C# Properties Reference

Property Values Default Description C# Support
int.MaxValue 2147483647 2147483647 int का अधिकतम मान सभी संस्करण
int.MinValue -2147483648 -2147483648 int का न्यूनतम मान सभी संस्करण
double.NaN NaN NaN Not-a-Number सभी संस्करण
double.PositiveInfinity Infinity Infinity +∞ को प्रदर्शित करता है सभी संस्करण
double.NegativeInfinity -Infinity -Infinity -∞ को प्रदर्शित करता है सभी संस्करण
bool.TrueString "True" "True" true का टेक्स्ट प्रतिनिधित्व सभी संस्करण
bool.FalseString "False" "False" false का टेक्स्ट प्रतिनिधित्व सभी संस्करण
string.Empty "" "" खाली स्ट्रिंग सभी संस्करण

🧠 अपने ज्ञान की परीक्षा करें

शुरू करने के लिए तैयार

Test Your Knowledge

Test your understanding of this topic with practical questions.

3
प्रश्न
🎯
70%
पास करने के लिए
♾️
समय
🔄
प्रयास

📝 निर्देश

  • हर प्रश्न को ध्यान से पढ़ें
  • हर प्रश्न के लिए सबसे अच्छा उत्तर चुनें
  • आप जितनी बार चाहें क्विज़ दोबारा दे सकते हैं
  • आपकी प्रगति शीर्ष पर दिखाई जाएगी