c# 중앙값 전송 및 참조 전송

2242 단어 c#
대상이 방법 간에 값을 전달하고 전달하는 것은 대상의 값이나 이 대상의 인용 사본이다.
// 
public class OrderInfo
{
    public string OrderName { get; set; }
}

// 
private void Change(OrderInfo order)
{
    order = new OrderInfo();
    order.OrderName = "Kevin";
}

// 
private void btnChange_Click(object sender, EventArgs e)
{
    OrderInfo order = new OrderInfo();
    order.OrderName = "test";
    Change(order);
    Console.WriteLine(order.OrderName); 
}

위의 결과는 테스트로 출력됩니다.
방법의 호출 전달은 사실상 하나의 대상의 인용 복제이기 때문에 이 부본의 인용을 끊은 후에 그에게 값을 부여한다. 새로운 인용은 원래의 인용 대상의 값을 바꾸지 않는다.
이전 참조를 전달하려면 ref 키워드를 사용해야 합니다.
// 
private void ChangeRef(ref OrderInfo order)
{
    order = new OrderInfo();
    order.OrderName = "KevinRef";
}

// 
private void btnChangeRef_Click(object sender, EventArgs e)
 {
     OrderInfo order = new OrderInfo();
     order.OrderName = "test";
     ChangeRef(ref order);
     Console.WriteLine(order.OrderName);
 }

인쇄 결과는 KevinRef입니다.
이때ref의 작용으로 인해 대상이 방법 간에 전달되는 것은 원래 인용에 따라 전달된다.

좋은 웹페이지 즐겨찾기