C#/์ด๊ฒƒ์ด C#์ด๋‹ค

8. Var, Object ํ˜•์‹๊ณผ์˜ ์ฐจ์ด?

Rainbow๐ŸŒˆCoder 2022. 2. 7. 15:03
728x90

var๋Š” object์™€ ๊ฐ™์€ ํ˜•์‹์ด๋ผ๊ธฐ ๋ณด๋‹ค๋Š”

์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ดˆ๊ธฐํ™”๋œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ๊ทธ ํ˜•์‹์„ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ฃผ๋Š” 'ํ‚ค์›Œ๋“œ'์ด๋‹ค.

 

int, string ๊ฐ™์€ ๋ช…์‹œ์  ํ˜•์‹ ๋Œ€์‹  var๋ฅผ ์‚ฌ์šฉํ•ด์„œ

๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ฉด ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ž๋™์œผ๋กœ ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ํ˜•์‹์„ ์ง€์ •ํ•ด์ค€๋‹ค.

 

var ํ‚ค์›Œ๋“œ๋ฅผ ์ด์šฉํ•ด์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•˜๋ ค๋ฉด

๋ฐ˜๋“œ์‹œ ์„ ์–ธ๊ณผ ๋™์‹œ์— ์ดˆ๊ธฐํ™”๋ฅผ ํ•ด์ฃผ์–ด์•ผํ•œ๋‹ค.

๊ทธ๋ž˜์•ผ๋งŒ ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๊ณ  ํ˜•์‹์„ ์ถ”๋ก ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

using System;
using System.Text;
using static System.Console;

namespace Hello
{
    class MainApp
    {
        static void Main(string[] args)
        {
            var a = 20;
            WriteLine("Type:{0}, Value:{1}", a.GetType(),a); //Type:System.Int32, Value:20

            var b = 3.141421;
            WriteLine("Type:{0}, Value:{1}", b.GetType(), b);

            var c = "Hello World !";
            WriteLine("Type:{0}, Value:{1}", c.GetType(), c);

            var d = new int[] { 10, 20, 30 };
            WriteLine("Type:{0}", d.GetType());
            foreach (var e in d)
                Write("{0} ",e);
        }
    }
}

์ถœ๋ ฅ๊ฒฐ๊ณผ

Type:System.Int32, Value:20
Type:System.Double, Value:3.141421
Type:System.String, Value:Hello World !
Type:System.Int32[]
10 20 30

ํ•˜๋‚˜ ๋” ์ถ”๊ฐ€

using System;
using System.Text;
using static System.Console;

namespace Hello
{
    class MainApp
    {
        static void Main(string[] args)
        {
            var d = new string[] { "I", "Hate", "You" };
            WriteLine("Type:{0}", d.GetType());
            foreach (var e in d)
                Write("{0} ",e);
        }
    }
}

์ถœ๋ ฅ๊ฒฐ๊ณผ

Type:System.String[]
I Hate You

 

<Object ํ˜•์‹๊ณผ์˜ ์ฐจ์ด?>

๋ฌผ๋ก  Object๋„ var์™€ ๊ฐ™์ด ์ •์ˆ˜, ์‹ค์ˆ˜, ๋ฌธ์ž์—ด์„ ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ๋‹ค.

object ํ˜•์‹์€ object ํ˜•์‹์ผ ๋ฟ์ด๋‹ค.

object a =20;์ด ์ปดํŒŒ์ผ๋˜์–ด ์‹คํ–‰๋˜๋ฉด CLR์€ 20์„ ๋ฐ•์‹ฑํ•ด์„œ ํž™์— ๋„ฃ์–ด๋†“๊ณ 

a๊ฐ€ ํž™์„ ๊ฐ€๋ฆฌํ‚ค๋„๋ก ๋งŒ๋“ค ๊ฒƒ์ด๋‹ค.

ํ•˜์ง€๋งŒ var a = 20;์€ ์ปดํŒŒ์ผ ์‹œ์ ์— ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ a์— ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ํŒŒ์•…ํ•ด์„œ

int a = 20;์œผ๋กœ ๋ฐ”๊ฟ” ์ปดํŒŒ์ผํ•œ๋‹ค.

CLR์ด ํ•ด๋‹น ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋–„๋Š” a๊ฐ€ var๋กœ ์„ ์–ธ๋˜์—ˆ๋Š”์ง€์กฐ์ฐจ ๋ˆˆ์น˜์ฑ„์ง€ ๋ชปํ•˜๊ณ 

int ํ˜•์‹์˜ ๊ฐ์ฒด a์— 20์„ ๋‹ด์•„ ์Šคํƒ์— ์˜ฌ๋ฆฐ๋‹ค.

728x90