namespace A
{
public class A : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Label lblPage;
public void test()
{
AA.A my = new AA.A(ref lblPage);
}
}
}
namespace AA
{
public class A
{
protected System.Web.UI.WebControls.Label mlblPage;
public A(ref System.Web.UI.WebControls.Label lblPage)
{
mlblPage = lblPage;
}
}
}
궁금증.
AA.A my = new AA.A(this, ref lblPage); 에서
어떤게 맞는것인지요?
1. lblPage는 call by value로 넘어가므로 ref로 보내야 한다.
그러므로 위에 기술한것처럼 ref로 보내는것이 맞다.
2. lblPage는 참조형이므로 call by reference로 넘어가므로 ref를 쓸필요가 없다.
위에서 ref를 적어준 부분을 빼버린다.
첫댓글 둘다 틀린거 같은데요.. call by reference 이므로 ref를 써서 넘겨야 합니다.. ref System.Web.UI.WebControls.Label lblPage <-- 이렇게 ref 로 넘기니까.. ref 받습니다.
기본데이터타입의 변수는 값타입(Value Type)이며 객체의 경우에는 참조타입(Reference Type)이다..., 위 질문을 요약하면 C#에서 매개변수로 보낼때는 값타입이건 참조타입이건 상관없이 Call by value로 전달되는건지요?