๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ–ฅ๏ธ/C#

[C#] ์ฐธ์กฐ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ „๋‹ฌ, ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’return, ๊ฐ€๋ณ€ ๊ฐœ์ˆ˜์˜ ์ธ์ˆ˜, ์„ ํƒ์  ์ธ์ˆ˜

by HanaV 2023. 8. 16.
728x90

์ฐธ์กฐ์— ์˜ํ•œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ „๋‹ฌ

๋ณดํ†ต ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ์— ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•  ๋•Œ, ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์‚ฌ๋˜์–ด์„œ ์ „๋‹ฌ๋œ๋‹ค. ๋งŒ์•ฝ ์ฃผ์†Œ๊ฐ’์„ ๋ณด๋‚ด๊ณ  ์‹ถ๋‹ค๋ฉด ์•ž์— ref๋ฅผ ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค.

    class Program 
    { 
        public static void Main(string[] args)
        {
            int x = 3;
            int y = 4;

            Console.WriteLine($"x = {x}, y = {y}");

            Swap(x, y);
            Console.WriteLine($"x = {x}, y = {y}");

            SwapRef(ref x, ref y);
            Console.WriteLine($"x = {x}, y = {y}");
        }

        static void Swap(int a, int b)
        {
            int temp = b;
            b = a;
            a = temp;
        }
        static void SwapRef(ref int a, ref int b)
        {
            int temp = b;
            b = a;
            a = temp;
        }
    }

์œ„ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด Swap์— ์˜ํ•œ ๊ฐ’์€ x=3, y=4๊ฐ€ ๋‚˜์˜ค๊ณ , SwapRef์— ์˜ํ•œ ๊ฐ’์€ x=4, y=3์ด ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.

 

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ returnํ•˜๊ธฐ

์—ฌ๋Ÿฌ ๊ฐœ์˜ ๊ฐ’์„ returnํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด out ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ถœ๋ ฅ ์ „์šฉ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ref์™€ ๊ฐ™์€ ์—ญํ• ์„ ํ•˜์ง€๋งŒ ํ•œ ๊ฐ€์ง€ ์ฐจ์ด์ ์€ ๋ฐ”๋กœ ๋ฉ”์„œ๋“œ๊ฐ€ ํ•ด๋‹น ๋งค๊ฐœ๋ณ€์ˆ˜์— ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์—๋Ÿฌ ๋ฉ”์„ธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค๋Š” ์ ์ด๋‹ค. (ref๋Š” ์•„๋ฌด๋Ÿฐ ๊ฒฝ๊ณ ๊ฐ€ ๋œจ์ง€ ์•Š๋Š”๋‹ค)

class UsingOut
{
    public static void Main(string[] args)
    {
        int a = 20;
        int b = 3;

        Divide(a, b, out int c, out int d);

        Console.WriteLine($"a:{a}, b:{b}, ๋ชซ:{c}, ๋‚˜๋จธ์ง€:{d}");

    }

    static void Divide(int a, int b, out int quotient, out int remainder)
    {
        quotient = a / b;
        remainder = a % b;
    }
}

 

๊ฐ€๋ณ€ ๊ฐœ์ˆ˜์˜ ์ธ์ˆ˜

๋งŒ์•ฝ ๋“ค์–ด์˜ค๋Š” ์ธ์ˆ˜์˜ ๊ฐœ์ˆ˜์™€ ์ƒ๊ด€ ์—†์ด ๋ชจ๋‘ ๊ฐ™์€ ๋ฉ”์„œ๋“œ๋กœ ๊ตฌํ˜„ํ•˜๊ณ  ์‹ถ๋‹ค๋ฉด, param ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

class ChangeFactor
{
    public static void Main(string[] args)
    {
        int total = Sum(1,2);
        Console.WriteLine(total);

        int total1 = Sum(1, 2, 3, 4 ,5);
        Console.WriteLine(total1);

        int total2 = Sum(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
        Console.WriteLine(total2);

    }

    static int Sum(params int[] nums)
    {
        int sum = 0;

        foreach (int i in nums)
        {
            sum += i;
        }

        return sum;
    }
}

 

์„ ํƒ์  ์ธ์ˆ˜

ํŠน์ • ๋งค๊ฐœ๋ณ€์ˆ˜์— default๊ฐ’์„ ๋ถ€์—ฌํ•˜๊ณ , default๊ฐ’์„ ๊ฐ€์ง„ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ ํ•ด๋‹น ์ธ์ˆ˜๋ฅผ ์ƒ๋žตํ•  ์ˆ˜ ์žˆ๋‹ค. (์„ ํƒ์  ์ธ์ˆ˜์™€ ์˜ค๋ฒ„๋กœ๋”ฉ์„ ๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฑด 0์ ์งœ๋ฆฌ ์ฝ”๋“œ์ด๋‹ค. ๋‘˜ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์„œ ์‚ฌ์šฉํ•˜๋„๋ก ์ •์ฑ…์ ์œผ๋กœ ๋ถ„๋ช…ํ•˜๊ฒŒ ์ •ํ•  ํ•„์š”๊ฐ€ ์žˆ๋‹ค.)

class OptionalParameter
{
    static void Main(string[] args)
    {
        PrintProfile("Annie");
        PrintProfile("Alice", "010-1234-5678");
    }

    static void PrintProfile(string name, string phone = "-")
    {
        Console.WriteLine($"Name: {name}, Phone: {phone}");
    }
}

 

728x90

"); wcs_do();