मुझे अभी भी object
के बारे में संदेह है। यह किसी भी वर्ग, किसी भी वर्ग का प्राथमिक आधार वर्ग है। लेकिन क्या यह संदर्भ प्रकार या मूल्य प्रकार है। या इनमें से कौन सा कार्य करता है? मुझे यह स्पष्ट करने की जरूरत है। मुझे समझ में कठिनाई है।वस्तु एक संदर्भ प्रकार या मूल्य प्रकार है?
object obj1 = "OldString";
object obj2 = obj1;
obj1 = "NewString";
MessageBox.Show(obj1 + " " + obj2);
//Output is "NewString OldString"
इस मामले में यह एक मूल्य प्रकार की तरह कार्य करता है। यदि ऑब्जेक्ट संदर्भ प्रकार था तो क्यों obj2 मूल्य अभी भी "OldString"
class SampleClass
{
public string Text { get; set; }
}
SampleClass Sample1 = new SampleClass();
Sample1.Text="OldText";
object refer1 = Sample1;
object refer2 = refer1;
Sample1.Text = "NewText";
MessageBox.Show((refer1 as SampleClass).Text + (refer2 as SampleClass).Text);
//OutPut is "NewText NewText"
इस मामले में यह संदर्भ प्रकार की तरह काम करता है में
हम यह मान सकते हैं object
के प्रकार क्या आप इसे अंदर बॉक्स है। यह एक संदर्भ प्रकार और मूल्य प्रकार दोनों हो सकता है। यह आपके अंदर बॉक्स के बारे में है। क्या मैं सही हू?
एक स्ट्रिंग का उपयोग कर एक उदाहरण के रूप में एक सुपर बुरा विचार है। स्ट्रिंग संदर्भ है लेकिन यह भी अपरिवर्तनीय है। जब आप एक नया बनाते हैं, तो यह पहली बार स्ट्रिंग पूल को देखता है कि यह देखने के लिए कि कोई स्ट्रिंग पहले से मौजूद है या नहीं। स्ट्रिंग एक सुपर स्पेशल केस है, संदर्भ और मूल्य टाइप के आसपास अवधारणाओं को समझाने के लिए इसका उपयोग न करें। – Markus
"जब आप कोई नया बनाते हैं, तो यह पहली बार स्ट्रिंग पूल को देखता है कि यह देखने के लिए कि कोई स्ट्रिंग पहले से मौजूद है या नहीं।" - यह है ... वास्तव में सच नहीं है। यह * कुछ मामलों * में जांच करेगा, लेकिन सामान्य मामले में नहीं। इसीलिए मैंने पहली जगह स्ट्रिंग का उपयोग क्यों किया: * क्योंकि सवाल विशेष रूप से स्ट्रिंग * पर चर्चा कर रहा था। –