티스토리 뷰

C#

4. params

LDobac 2016. 5. 7. 18:34

 

이번에는 메소드에 인자 제한 없이 인자를 넘길 수 있는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(25358));

            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;

        }

    }

}

   

   

   

Colored by Color Scripter

cs

 

이렇게 하면 인자의 개수에 상관 없이 막 집어 넣어도 다 실행이 잘된다.

그리고 저기 배열뒤에 객채함수를 사용하는 것 처럼 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
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
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
글 보관함