Method Parameters Value Types vs. Reference Types c# In Hindi
C# प्रोग्रामिंग में यूजर डिफाइन प्रोग्राम मेथड पैरामीटर्स को मुख्य रूप से दो मुख्य कैटेगरी में डिवाइड किया जा सकता है. जिसमे फर्स्ट वैल्यू टाइप्स और सेकंड रेफरेंस टाइप्स प्रोग्राम मेथड है। यहाँ वैल्यू टाइप्स और रेफरेंस टाइप्स मेथड के बीच मुख्य डिफ्रेंस यह है कि प्रोग्राम डाटा एक्चुअल टू फॉर्मल वैल्यू एक्सचेंज ऑपरेशन के दौरान डेटा वैल्यू इनफार्मेशन को यूजर डिफाइन मेथड में कैसे पास किया जाता है।

So, let’s take a closer look at value types and reference method parameters in C# programming.
Value Types method in C#.
C# प्रोग्राम में यूजर डिफाइन वैल्यू टाइप्स मेथड में एक्चुअल ओरिजिनल प्रोग्राम डेटा वैल्यू स्टोर या प्रोसेस होते है, और जब C# प्रोग्रामर कोई वैल्यू टाइप किसी यूजर डिफाइन फंक्शन मेथड में पास करता है. तो इस प्रोसेस में उस डेटा की एक कॉपी वैल्यू पास की जाती है। जिसमे यूजर डिफाइन प्रोग्राम फंक्शन मेथड के अंदर यूजर डिक्लेअर फॉर्मल वेरिएबल पैरामीटर में किए गए किसी भी प्रकार के मॉडिफिकेशन ओरिजिनल डेटा पर कोई डायरेक्ट इम्पैक्ट नहीं करते हैं।
Common C# value types are method objects.
- Primitive data types – C# प्रोग्राम में सिस्टम डिफाइन डाटा टाइप वैल्यू में int, float, double, char, bool, अदि मुख्य डाटा टाइप मेथड है।
- Structural data types – C# प्रोग्राम में डिक्लेअर यूज़र-डिफाइंड कस्टम डाटा टाइप्स वैल्यू ऑब्जेक्ट जैसे कस्टम स्ट्रक्चर है. जैसे, DateTime, Point, आदि है।
Example of a value type parameter in C#.
using System;
class ValueType
{
static void Main()
{
int p = 9;
AlterInfo(p);
Console.WriteLine(p); // Result – 9
}
static void AlterInfo(int q )
{
q = 13; // here it only Modifies the local copy of variable, but not the actual original variable data value
}
}
Explaining the value type parameter.
- यहाँ इस प्रोग्राम में डिक्लेअर int डाटा टाइप वेरिएबल पैरामीटर q को वैल्यू से पास किया जाता है। यहाँ यूजर डिफाइन मेथड के अंदर q वेरिएबल की वैल्यू को मॉडिफाई करने से Main प्रोग्राम मेथड में p वेरिएबल की ओरिजिनल वैल्यू मॉडिफाई नहीं होती है, और इसके एक्चुअल ओरिजिनल वैल्यू पर कोई इम्पैक्ट नहीं होता है।
Reference type method in C#.
C# प्रोग्राम में रेफरेंस टाइप मेमोरी में स्टोर एक्चुअल ओरिजिनल डेटा वैल्यू का रेफरेंस (या पॉइंटर) एक्चुअल वेरिएबल डिस्क में स्टोरेज एड्रेस लोकेशन को स्टोर या होल्ड करते हैं। जब C# प्रोग्राम में डिक्लेअर यूजर डिफाइन मेथड को रेफरेंस टाइप वैल्यू के साथ पास किया जाता है. तो इस प्रोसेस में उसके रेफरेंस एड्रेस पॉइंटर लोकेशन (डेटा की कॉपी नहीं) को पास किया जाता है। इसका मतलब है की, मौजूदा प्रोग्राम में डिक्लेअर प्रोग्राम मेथड के अंदर डिफाइन वेरिएबल पैरामीटर में किए गए किसी भी प्रकार के ओरिजिनल डेटा वैल्यू पर कोई डायरेक्ट इम्पैक्ट नहीं करते हैं।
Common reference type method in C#.
- Class data type – क्लास, यूजर डिफाइन डाटा टाइप है. जैसे, स्ट्रिंग डाटा वैल्यू, कस्टम यूज़र-डिफाइंड टाइप, आदि वैल्यू को होल्ड या प्रोसेस कर सकते है।
- Array data type – C# में ऐरे एक रेफरेंस डाटा टाइप होते हैं, जो कॉन्टिनियस सीक्वेंस में ऐरे एलिमेंट डाटा विथ मेमोरी एड्रेस इंडेक्स लोकेशन रेफ़्रेन्स को यूज़ करते है।
- Delegates data type – ये सभी यूजर डिफाइन रेफरेंस टाइप मेथड की तरह होते हैं।
Example of a reference type parameter in C#.
using System;
class Employee
{
public string Emp_Name;
public string Emp_Age;
}
class Emp_data
{
static void Main()
{
Employee employee = new Employee();
employee.Emp_Name = “Bhavishi Deora”;
employee.Emp_Age = “21”;
ModifyReference(employee);
Console.WriteLine(employee.Emp_Name); // Result is – Siddhi Deora
Console.WriteLine(employee.Emp_Age); // Result is – 19
}
static void ModifyReference(Employee e)
{
e.Emp_Name = “Siddhi Deora”; // Modifies the original object, because it’s passed by reference
e.Emp_Age = “19”;
}
}
Reference type parameter in C# Explanation.
- यहाँ इस प्रोग्राम में Employee एक क्लास ऑब्जेक्ट एक रेफरेंस डाटा टाइप स्ट्रक्चर है, इस वजह से ModifyReference मेथड ओरिजिनल employee क्लास ऑब्जेक्ट को मॉडिफ़ाई करता है। employee.Emp_Name, employee.Emp_Age और में किए गए Main मेथड में वैल्यू पर इम्पैक्ट करते है।
Passing data reference data types by value in a C# program and how it differs in a program.
जैसा की C# प्रोग्राम में रेफरेंस डाटा टाइप डिफ़ॉल्ट रूप से प्रोग्राम मेथड में वेरिएबल पैरामीटर स्टोरेज पॉइंटर इंडेक्स लोकेशन से रेफरेंस से वैल्यू पास होते हैं, यहाँ C# प्रोग्रामर ref या out कीवर्ड का यूज़ करके इन वेरिएबल रेफेरेंस को कंट्रोल और मैनेज कर सकते हैं कि वे किसी प्रोग्राम में रेफ़्रेन्स के रूप में कैसे पास होंगे।
Using the ref keyword with reference types in C# programs.
C# प्रोग्राम में ref कीवर्ड C# प्रोग्रामर को रेफरेंस से रेफरेंस डाटा टाइप पास करने में हेल्प करता है, जिससे की मौजूदा प्रोग्राम में यूजर डिफाइन प्रोग्राम मेथड किसी भी ओरिजिनल वेरिएबल पैरामीटर ऑब्जेक्ट वैल्यू को डायरेक्ट मॉडिफ़ाई कर सकता है।
Ref keyword with reference types Example in C#.
using System;
class Employee
{
public string Emp_Name { get; set; }
public string Emp_Age { get; set; }
}
class Employee_info
{
static void Main()
{
Employee employee = new Employee();
employee.Emp_Name = “Harry Deora”;
employee.Emp_Age = “24”;
UpdateReference(ref employee);
Console.WriteLine(employee.Emp_Name); // Result is – Bhavishi Deora
Console.WriteLine(employee.Emp_Age); // Result is – 21
}
static void UpdateReference(ref Employee e)
{
e = new Employee(); // here it Changes the reference itself during process
e.Emp_Name = “Bhavishi Deora”;
e.Emp_Age = “21”;
}
}
Ref keyword with reference types Explanation.
- यहाँ इस प्रोग्राम में ref कीवर्ड आपको मौजूदा एम्प्लॉई क्लास में न सिर्फ ओरिजिनल ऑब्जेक्ट की वैल्यू प्रॉपर्टीज़ को मॉडिफाई करने देता है, बल्कि मौजूदा एक्चुअल ओरिजिनल वैल्यू को फॉर्मल रेफरेंस ऑब्जेक्ट से पूरी तरह से नए ऑब्जेक्ट में मॉडिफाई करता है।
out keyword method in C#.
C# प्रोग्राम में out कीवर्ड ref कीवर्ड की तरह ही एक क्लास मेथड बेस्ड रेफेरेंस एक्शन परफॉर्म करता है, लेकिन इसमें मुख्य अंतर यह है कि यह मौजूदा प्रोग्राम में यूजर डिफाइन फंक्शन मेथड में पास करने से पहले डाटा टाइप वेरिएबल पैरामीटर वैल्यू को मैन्युअल इनिशियलाइज़ करने की ज़रूरत नहीं होती है। आपको सिर्फ इसे एक मेथड के अंदर एक वैल्यू के रूप में असाइन करनी होगी।
out keyword method Example in C#.
using System;
class Employee
{
public string Emp_Name { get; set; }
public string Emp_Age { get; set; }
}
class Emp_info
{
static void Main()
{
Employee employee;
StartEmployee(out employee);
Console.WriteLine(employee.Emp_Name); // Result is – Bhavishi Deora
Console.WriteLine(employee.Emp_Age); // Result is – 23
}
static void StartEmployee(out Employee e)
{
e = new Employee(); // here we Must assign it before use in program
e.Emp_Name = “Bhavishi Deora”;
e.Emp_Age = “23”;
}
}
out keyword method explanation.
- यहाँ इस प्रोग्राम में out कीवर्ड का यूज़ एक ऑब्जेक्ट रेफरेन्स के रूप में तब किया जाता है, जब यूजर डिफाइन प्रोग्राम मेथड वेरिएबल पैरामीटर को वैल्यू असाइन करने के लिए एक्चुअल में रेस्पोंसिबल होता है। यहाँ इस प्रोग्राम में, इसे एम्प्लॉई क्लास ऑब्जेक्ट मेथड के अंदर क्रिएट किया गया और इसे मैन्युअली स्टार्ट या इनिशियलाइज़ किया जाता है।
Main Difference between Value Types and Reference Types in c#.
| Data type Feature | Value Types in c# | Reference Types in c# |
| What they passed | Value data type method is actually used to passed A copy of the value in program. | Reference type method used to A reference (memory storage address location) to the pass formal object value. |
| Memory Allocation | Value type data method used as Stored on the stack order. | Reference type method Stored data on the heap order. |
| Modifications impact | Value data type method any kind of Changes do not affect the original data type variable value. | Reference type method used to Changes modify the original object parameter value. |
| Where it works | Value data type method works with int, float, bool, struct, data type. | Reference type method work with class, string, array, delegate data type |
Summary of Method Parameters Value Types vs. Reference Types.
- Value type – C# प्रोग्राम में डाटा टाइप में डिक्लेअर एक्चुअल वैल्यू से पास किया जाता है, जिसमे रियल ऑब्जेक्ट की एक कॉपी क्रिएट की जाती है। जहा यूजर डिफाइन प्रोग्राम मेथड के अंदर किए गए किसी भी प्रकार के मॉडिफिकेशन ओरिजिनल डेटा वैल्यू पर कोई डायरेक्ट इम्पैक्ट नहीं करते हैं।
- Reference type – C# प्रोग्राम में ref या out कीवर्ड का यूज़ कर रेफरेंस के रूप में पॉइंटर स्टोरेज इंडेक्स लोकेशन से वैल्यू को पास करने में किया जाता है. यहाँ इस प्रोसेस मे वेरिएबल पैरामीटर डेटा का ओरिजिनल रेफरेंस को पास किया जाता है। इस प्रोसेस में यूजर डिफाइन प्रोग्राम मेथड के अंदर किए गए किसी भी प्रकार के मॉडिफिकेशन प्रोग्राम में ओरिजिनल ऑब्जेक्ट पर इम्पैक्ट करते हैं।
