메소드란?
메소드 : 객체 지향 프로그래밍에서 사용하는 용어, c/c++에서는 함수라고 불린다. 메소드는 코드를 하나의 이름으로 묶은것이고, 이렇게 묶은 코드는 메소드를 호출하면서 실행 할 수 있다.이를 메소드를 호출한다고 한다.
- 객체의 일을 처리하는 방법, 또는 방식이라 생각하면 쉽다.
- 클래스의 기능처리를 하는것이 메소드다.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace study_csharp { class c06Calculator { class Calculator { public static int Plus(int a, int b) { return a+b; } public static int Minus(int a, int b) { return a - b; } } class MainApp { public static void Main() { int result = Calculator.Plus(3, 4); Console.WriteLine(result); result = Calculator.Minus(5, 2); Console.WriteLine(result); } } } }
Return
- 점프문의 한 종류, 프로그램의 흐름을 갑자기 호출자에게 돌려 놓는다.- 메소드가 반환할 것이 아무겂도 없는 경우, 반환 형식이 void인 경우에도 return 문을 사용할 수 있다.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace study_csharp { class c06Return { static int Fibonacci(int n) { if (n < 2) return n; else return Fibonacci(n - 1) + Fibonacci(n - 2); } static void PrintProfile(string name, string phone) { if(name == "") { Console.WriteLine("이름을 입력하세요"); return; } Console.WriteLine("name {0}, Phone:{1}", name, phone); } static void Main(string[] args) { Console.WriteLine("10번째 피보나치 수 : {0}", Fibonacci(10)); PrintProfile("", "123-456"); PrintProfile("이동욱", "456-1230"); } } }
call by value, call by reference
값에 의한 전달 call by value
- 메소드를 호출할 때 데이터를 복사해서 매개 변수에 넘기는 것.참조에 의한 전달 call by reference
- 매개 변수가 메소드에 넘겨진 원본 변수를 직접 참조 한다.- 메소드 안에서 매개 변수를 수정하면 이 매개 변수가 참조 하고 있는 원본 변수에 수정이 이루어 진다.
> ref 키워드 사용
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace study_csharp { class c06SwapByValue { // 값에 의한 전달 call by value, swap 실패 public static void Swap(int a, int b) { int temp = b; b = a; a = temp; } // 참조에 의한 전달 call by reference swap 성공 public static void Swap2(ref int a,ref int b) { int temp = b; b = a; a = temp; } static void Main(string[] args) { int x = 3; int y = 4; Console.WriteLine("x : {0}, y : {1}", x, y); Swap(x,y); Console.WriteLine("swap -> x : {0}, y : {1}", x, y); Swap2(ref x,ref y); Console.WriteLine("swap2 -> x : {0}, y : {1}", x, y); } } }
반응형
'프로그래밍 > Unity' 카테고리의 다른 글
[c#] is/as 연산자 (0) | 2016.12.26 |
---|---|
[c#] class 객체 (1) | 2016.12.26 |
[C#] DateTime 주의 사항 (0) | 2016.07.31 |
sealed 클래스 (0) | 2015.06.12 |
Object class 의 Empty 체크하기! (0) | 2015.06.12 |
댓글