๊ฐ๋ ์ ๋ํฐ ๊ต์ฌ๋ฅผ ๋ณด๋ฉด Boxing ์ผ๋ก ์ฒ๋ฆฌ ํ์ง ์์๋ ๋๋๋ฐ Boxing์ผ๋ก ์ฒ๋ฆฌํ ๋ถ๋ถ์ด ๊ฐํน ๋ณด์ธ๋ค.
์๋ง Boxing์ ์ฅ์ ์ ์ค๋ช ํ๊ณ ์ถ์ด ์ฌ์ฉํ๊ฒ ์ง๋ง ๋จ์ ์ ๋ํด์๋ย ์ค๋ช ์ด ์๊ธฐ์ ํ๋ฒ ์จ๋ณด๊ฒ ๋ค.
Boxing ์ด๋?
int a = 5; ๊ฐ ์๊ณ
CallFunc(a); ๋ผ๋ ํจ์๋ฅผ ํธ์ถํด์ a๋ฅผ ๋๊ฒจ๋ณด์.
CallFunc(object obj)
{
//๊ตฌํ๋ถ๋ถ
}
๋งค๊ฐ๋ณ์ obj ๊ฐ int ํ์ด ์๋๋ผ object ์ฐธ์กฐํ์ด๋ค.
๊ฐ๋จํ๊ฒ
int a = 5;
object obj= a;
์ด ๋์ค์ด Boxing ๊ณผ์ ์ด๋ค.
Boxing ์ผ๋ก ์ฝ๋๊ฐ ์ค์ด๋ค์ง๋ง ์ฑ๋ฅ์ด ๊ฐ์ํ๋ค.
ํธํ๊ฒ ์ฝ๋ฉ์ ํ๊ณ ์ถ๋ค๋ฉด Boxing์ ์ฌ์ฉํ์.
์ฑ๋ฅ์ ์๊ฐํ๋ค๋ฉด Boxing์ ์ฌ์ฉํ์ง๋ง๊ณ Overloading์ ์ฌ์ฉํ์.
Console.WriteLine() ๋ํ ์ฑ๋ฅ์ ์ํด Boxing ๋์ ํจ์ ์ค๋ฒ๋ก๋ฉ์ ํํ๋ค.
Example.)
public static void WriteLine(bool value);
public static void WriteLine(char value);
...... ๋ฑ
์ถ์ฒ.
https://docs.microsoft.com/ko-kr/dotnet/csharp/programming-guide/types/boxing-and-unboxing
์ฒ์ ๋ฐฐ์ธ๋ ๊ทธ๋ฌ๋๋ฐ ์์ฉ์์ง ์ ์ํ๋๊ฑฐ ์๋๋ฉด ๊ฐ๋ฐ ํธ์์ฑ์ด ๋ ์ค์ํ๋ค๊ณ ์๊ฐ์ด ๋ฐ๋
๊ทธ๋ ๋ค๊ณ ๋น์ถ4๊ฐ๋ ์ฌํ์๋ ํ;;
๋ด๊ฐ ๋๋ฅธ๊ฑด ์๋์ง๋ง ์ฆ๋ช ํ๋ ค๊ณ ์ถ์ฒ ๋๋ฅด๊ธด ์ข ๊ทธ๋์ ํ์์ถ์ฒ ํ๋ ๋ ๋๋ ค๋ดค์