0
나는 중학교의 개발자이며 아래의 샘플 코드가 좋은 연습인지 잘 모르겠습니다. 메서드의 매개 변수로 현재 클래스 인스턴스를 전달하여 성능에 영향이 있는지 알고 싶습니다. 또한 여러 가지 방법으로 전달하여 성능에 미치는 영향은 무엇입니까? 아래 코드에 대해 조언 해주십시오.이 키워드를 사용하는 메서드에 상속 된 클래스를 param으로 전달할 때 메모리가 어떻게 할당됩니까?
Class X: Y
{
Z myObject = new Z();
myObject.MethodA((Y)this);
}
Class Z
{
MethodA(Y y)
{
y.Mystream = Write Element
MethodB(ref y)
MethodC(ref y)
}
MethodB(ref Y y)
{
y.Mystream = Write Element
}
}
Class Y
{
Public XMLTextWriter Mystream = null;
}
알아두면 좋을 것 같습니다. 나는 이것이 전달 될 때 참조 사본이 값으로 전달된다는 것을 알지 못했다. 고맙다. – user596342
이제 나는 그것에 대해 더 생각한다. 나는 MethodA (이)에 대해 100 % 명확하지 않다. 클래스 X는 인스턴스를 갖고있다. Y를 상속합니다. 전체 객체를 힙이나 주소에 복사합니까? 또한 MethodB (ref Y) y는 다른 메소드로 전달되는 xml 스트림입니다. 따라서 클래스 x가 인스턴스화 될 때마다 스트림을 만들고 닫음으로써 오버 헤드가 발생하지 않습니까? – user596342
@ user596342 그것은 단지 참고서입니다 (실제 주소는 주소이지만, 두 사람이 같은 것을 주장하면 어떤 사람들은 매우 화가납니다); 개체 자체는 복사되지 않습니다. 스트림을 열고 닫을 때 - 시나리오에 좀 더 구체적으로 설명해야합니다. –