मैं एक आधार वर्ग हैसी # विरासत। बेस वर्ग से व्युत्पन्न वर्ग
public class A
{
public string s1;
public string s2;
}
मैं भी एक व्युत्पन्न वर्ग है:
public class B : A
{
public string s3;
}
मान लीजिए मेरा कार्यक्रम वर्ग ए का एक उदाहरण बनाया
A aClassInstance = new A();
कुछ पैरामीटर सेट किए गए थे:
aClassInstance.s1 = "string 1";
aClassInstance.s2 = "string 2";
इस बिंदु पर मैं कक्षा बी का एक उदाहरण बनाना चाहेंगे लेकिन मैं बी चाहते हैं पहले से ही वर्ग ए के अपने उदाहरण के मूल्यों के लिए
यह काम नहीं किया:
public B bClassInstance = new B():
bClassInstance = (B)aClassInstance;
न तो DID इस:
निर्मित कक्षा ए के भीतर एक क्लोन विधि
public B cloneA() {
A a = new A();
a = (A)this.MemberwiseClone()
return(B)a;
}
वी.एस. कोड ऊपर के दोनों लेता है - बू टी मैं रन-टाइम त्रुटियों
कृपया मदद
क्लोनिंग करते समय सावधान रहें - विशेष रूप से यदि आपकी कक्षा में उत्परिवर्तनीय संदर्भ प्रकार के क्षेत्र हैं। तय करें कि क्या आप एक गहरे क्लोन या उथले क्लोन चाहते हैं, और इसे दस्तावेज करें। – TrueWill
सही। इस विशेष वर्ग में कोई संदर्भ नहीं है, इसलिए इसके लिए एक उथले क्लोन काम करता है। मुझे यहां रुचि रखने वाले किसी भी व्यक्ति के लिए उथले बनाम गहरे क्लोनिंग पर एक अच्छी पोस्ट मिली: http://itpksingh.blogspot.com/2009/08/shallow-copyingdeep-copyingobject.html – Sam
ValueInjector का उपयोग करके एक समाधान मिला। StackOverFlow मुझे अभी तक "मेरे अपने प्रश्न का उत्तर देने" की अनुमति नहीं दे रहा है। एक बार ऐसा करने के बाद, पूर्ण विवरण पोस्ट करेंगे। – Sam