반응형
using System;
using System.Collections.Generic;
using System.Text;

namespace CS함수
{
    class Program
    {
        // call by value , call by ref 
        // 1)  함수 내부로 인자를 전달하는 메카니즘 !! 
        //   -- > in Input Parameter : 

        // 1) 1개의 배열을 매개변수로 받아서 화면에 출력하는 함수 
        //  --> input  
        //2) 1개의 배열을 매개변수로 받아서 사용자에게 값을 입력하는 함수
        // --> output 
        // input : call by value 
        // out :  call by Ref 
        // call by value 
     /*   static void Add(out int No) //  out :   포인터의 전달 -> call by Ref !! 
        {
            // out : 값을 전달하기 위한 목적으로는 사용할수 없다 !! 
            No = 11;
            Console.WriteLine(No); //?? 
        }*/
        static void Add(ref int No)
        {
            No++;
            Console.WriteLine(No); //?? 
        }

        // out. ref 둘다 call by ref !! 
        // C#에서는 포인터가 없기때문에  포인터를 통해서 구현하던 call by ref 기능을 !! 
        //  out ,  ref키워드를 통해서 구현 한다 !! 
        // 단, 차이는 !! 
        // ref는 포인터와 완전히 동일한 형태로 call by ref를 구현하지만...
        // out :  반드시  값의 할당 필요하다 !! 


        // 가변 인자 함수 !! 
        // 함수로 전달되어지는 파라미터의 갯수가 가변적인 함수..
        // ex)  printf, scanf
        // printf함수는 파라미터가 몇개인가?? 
       //  printf("%d %d",10,10); 


       /* static long Sum( params long []  ParamList )
        {
            long Result = 0;
            foreach (long item in ParamList)
            {
                Result += item;
            }
            return Result; 
        }*/
        static string Sum(params Object[] ParamList)
        {
            string Result = "";
            foreach (Object item in ParamList)
            {
                Result += item.ToString();
            }
            return Result;
        }

        static void Main(string[] args)
        {


         //   Console.WriteLine("{0}    {1}    {2}", 10, "20", 30.0); 
           Console.WriteLine(Sum(10, 20, 30, 20,111,"60"));
          /*  int No = 10;
            Console.WriteLine(No);
            Add(ref No );
            Console.WriteLine(No);
        */
       }
    }
}

+ Recent posts