나는 기본 클래스를 가지고C# 상속. 기본 클래스에서 파생 된 클래스는
public class A
{
public string s1;
public string s2;
}
나는 또한 파생 클래스가
:
public class B : A
{
public string s3;
}
내 프로그램은 클래스 A의 인스턴스를 생성 가정을
A aClassInstance = new A();
일부 매개 변수가 설정되었습니다 :
aClassInstance.s1 = "string 1";
aClassInstance.s2 = "string 2";
이 시점에서
내가 클래스 B의 인스턴스를 생성하고 싶습니다하지만 이미 클래스 A의 내 인스턴스의 값을 가지고 B 싶습니다
이 작동하지 않았다 :
public B bClassInstance = new B():
bClassInstance = (B)aClassInstance;
- BU
만든 클래스 A. 내에서 복제 방법은
public B cloneA() {
A a = new A();
a = (A)this.MemberwiseClone()
return(B)a;
}
은 VS 코드는 위의 둘을 취 어느 쪽이 DID t I 런타임 오류가
이
복제 할 때 특히 클래스에 가변 참조 유형의 필드가있는 경우 특히주의하십시오. 깊은 복제본이나 얕은 복제본을 원하면 결정하고 문서화하십시오. – TrueWill
오른쪽. 이 특정 클래스에는 참조가 없으므로 얕은 복제가 작동합니다. 관심있는 모든 사람들을 위해 여기에서 얕은 복제와 깊은 복제에 대한 좋은 게시물을 찾았습니다. http://itpksingh.blogspot.com/2009/08/shallow-copyingdeep-copyingobject.html – Sam
ValueInjector를 사용하여 솔루션을 찾았습니다. StackOverFlow는 아직 "내 질문에 대답"을 허용하지 않습니다. 일단 그렇게되면 전체 세부 정보를 게시합니다. – Sam