티스토리 뷰
이번에는 메소드에 인자 제한 없이 인자를 넘길 수 있는params에 대해 알아 보겠습니다.
먼저 C/C++에도 이런 방법..? 이 있었고 실제로도 사용이 됐지요(printf,scanf와 같은) 실제로도 C#에서도 Console.Write()함수에도 사용 되고 있습니다.(라고 해도 잘 안 쓸 거 같은데..)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Console.WriteLine(Add(2, 5, 3, 5, 8)); Console.WriteLine(Add(5,2,55,2,5,8,2,5,5,8)); Console.WriteLine(Add(100,1)); }
static int Add(params int[] List) { int sum = 0; for(int i = 0;i<List.Length;i++) { sum += List[i]; } return sum; } } }
|
이렇게 하면 인자의 개수에 상관 없이 막 집어 넣어도 다 실행이 잘된다.
그리고 저기 배열뒤에 객채함수를 사용하는 것 처럼 List.(함수) 가 사용 되었는데 나중에 알아볼 확장 클래스(..?)라나..
소스코드를 적다가 알게 된 거지만 foreach문은 무조건 괄호 안에 변수를 선언 해야 작동되고, 우측의 사진의 for문 에서는 sum변수를 초기화를 안해주니 변수 취급을 안해준다 카더라..(더럽게 까다롭네)
'C#' 카테고리의 다른 글
6. sealed (0) | 2016.05.07 |
---|---|
5. 배열 (0) | 2016.05.07 |
3. ref와out (0) | 2016.05.07 |
개인/C# 문법/2. foreach (0) | 2016.05.07 |
C#의 데이터 형(Type)들 (0) | 2016.05.07 |