Пример #1
0
        static void Main(String[] args)
        {
            var calc = new Calculator();

            int a = 5;
            int b = 10;

            // C# ref
            calc.Double(a, ref b);                  // b = pass by refence : ref
                                                    // a = pass by value

            Console.WriteLine("a = {0}, b = {1}", a, b);

            // C# out  but, 변수안에 값이 있으면 실행이 안됨 그럴때엔 out이 아닌 ref
            //int sum;
            //double avg;
            //calc.GetSumAndAvg(5, 15, out sum, out avg);

            //Console.WriteLine("sum = {0}, avg = {1}",sum,avg);

            // C# 7.0
            //calc.GetSumAndAvg(5, 15, out int sum, out double avg);      // 여기서 선언가능
            //calc.GetSumAndAvg(5, 15, out var sum, out var avg);         // 프로토타입으로 파라미터를 보고 자료형 결정
            //calc.GetSumAndAvg(5, 15, out var sum, out _);

            // C# params : 가변 파라미터
            //int s = calc.Sum(1);
            //s = calc.Sum(1, 2);
            //s = calc.Sum(1, 2, 3, 4, 5);
            //s = calc.Sum();

            // Named Parameter, optional Parameter
            var st = new StudentList();

            st.AddStudent("Tim", "111-2222", 10);
            st.AddStudent("Tim", "111-2222");                           // optional parameter
            st.AddStudent(name: "Tim", age: 10, phone: "111-2222");     // named parameter
        }