ASP/ADO.Net C# 실무 과정 자료] 참조 전달시 유의점






ASP/ADO.Net C# 실무 과정 자료] 참조 전달시 유의점

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


참조 전달시 유의점


■ 파라미터로 전달할 변수는 반드시 초기화 해야 한다. (C#에서는 각 변수를 초기화 하기 전에는 메모리를 할당하지 않는다는 것을 명심한다.)



■ 참조 전달의 경우, 메소드 내부에서 원본 데이터에 대한 조작실수가 일어날 가능성이 있으므로 주의가 필요하다. 이를 side effect(부작용)이라 부른다.



■ 만약 반환값의 확장을 위해서 참조를 사용할 생각이라면 뒤에서 설명할 out 키워드를 사용한다. out 키워드의 사용은 초기화를 요구하지 않는다.



ASP/ADO.Net C# 실무 과정 자료] 참조 의한 파라미터 전달(개념)






ASP/ADO.Net C# 실무 과정 자료] 참조 의한 파라미터 전달(개념)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


참조 의한 파라미터 전달(개념)


■ x=1, y=2를 Swap 메소드에 넘길때, 참조를 넘기면 Swap의 x,y에 대한 조작은 그대로 Main의 x,y에 대해 같은 효과를 가진다.



ASP/ADO.Net C# 실무 과정 자료] 참조 파라미터 전달 예제 






ASP/ADO.Net C# 실무 과정 자료] 참조 파라미터 전달 예제 

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.



참조 파라미터 전달 예제 



(1)



(2)




ASP/ADO.Net C# 실무 과정 자료] 참조에 의한 파라미터 전달






ASP/ADO.Net C# 실무 과정 자료] 참조에 의한 파라미터 전달

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


참조에 의한 파라미터 전달


■ 앞의 Swap을 정상적으로 동작하게 하려면, x,y의 값이 아닌 x,y의 참조(포인터, 또는 주소)를 Swap 메소드에게 전달해야 한다.



참조를 파라미터로 사용하기 위해서, 파라미터를 선언할 때 ref라는 키워드를 붙여준다.



■ 메소드 호출할 때에는, 파라미터 선언에 ref가 붙은 모든 파라미터에 대해서, 메소드 호출시에도 변수 앞에 ref를 붙인다.



■ 기본적인 사용법을 예로 들면 아래와 같다. 

public static void Swap(ref int x, ref int y)

Swap(ref x, ref y);



ASP/ADO.Net C# 실무 과정 자료] 값에 의한 파라미터 전달(개념)






ASP/ADO.Net C# 실무 과정 자료] 값에 의한 파라미터 전달(개념)

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


값에 의한 파라미터 전달(개념)


■ x=1, y=2를 Swap 메소드에 넘길때, 값 만을 넘겨준다. 즉 Swap메소드를 호출한 메소드의 x, y 값에는 변함이 없다.


ASP/ADO.Net C# 실무 과정 자료] 값에 의한 파라미터 전달






ASP/ADO.Net C# 실무 과정 자료] 값에 의한 파라미터 전달

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


값에 의한 파라미터 전달


■ 아래 메소드는 두 수를 입력받아 그 수를 서로 바꾸어 주는 메소드이다.

public static void Swap(int x, int y)

{

int temp;

temp=x;

x=y;

y=temp;

}


■ 이 경우 아래를 실행시키면 어떻게 될까? 정답은 “아무일도 일어나지 않는다.” 이다

X=1; y=2; Swap(x, y);



ASP/ADO.Net C# 실무 과정 자료] Argument






ASP/ADO.Net C# 실무 과정 자료] Argument


실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


Argument


■ 정상과 오류

정상 : public static void Method(int i, int j, string k)

오류 : public static void Method(int)

public static void Method(int i,j)



■ 메소드를 호출할 때, 형식에 맞는 각각의 파라미터를 넣어주어야 한다. 즉, 위 정상적인 메소드를 호출할 경우 Object.Method(1,2,”AB”) 식으로 써야한다.



파라미터를 전달할 때, ref와 out 등의 키워드를 사용할 수 있다. 이것은 return value가 하나밖에 없는 단점을 보완하게 해 준다.



ASP/ADO.Net C# 실무 과정 자료] 메소드 정의하기






ASP/ADO.Net C# 실무 과정 자료] 메소드 정의하기

실무개발자를위한 실무교육 전문교육센터학원

www.oraclejava.co.kr에 오시면 보다 다양한 강좌를 보실 수 있습니다.


메소드 정의하기


■ public static void Main(string[] args){ … }

- public : 접근 제어


- static : 정적 메소드 키워드 (virtual이면 가상 메소드 abstract이면 추상 메소드를 의미한다)


- void : return value(반환값) 타입 (int, srting 등을 반환값으로 설정할 수 있다.)


- Main : 메소드의 이름


- (string[] args) : 메소드의 입력 인자 (Argument)


- {…} : 메소드의 본문. 메소드의 반환값이 void(아무것도 반환 안함)가 아닌 경우 반드시 return 문을 포함해야 한다.



+ Recent posts