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

9. ๊ณต์šฉ ํ˜•์‹ ์‹œ์Šคํ…œ

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

๋ฐ์ดํ„ฐ ํ˜•์‹ ์ฒด๊ณ„ : ๋‹ค์–‘ํ•œ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํ˜•์‹, ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ๋“ค์„ ์กฐํ•ฉํ•ด์„œ ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ๋งŒ๋“ค๊ณ , ์Šคํƒ๊ณผ ํž™์ด๋ผ๋Š” ๋‘๊ฐ€์ง€ ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์„ ํ™œ์šฉํ•ด์„œ ๋ณ€์ˆ˜์˜ ์ƒ๋ช… ์ฃผ๊ธฐ์— ๋”ฐ๋ผ ๋ณ€์ˆ˜๋ฅผ ๊ฐ’ ํ˜•์‹์ด๋‚˜ ์ฐธ์กฐํ˜•์‹์œผ๋กœ ๋งŒ๋“ค์–ด ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋ชจ๋‘ ์ผ์ปซ๋Š” ๊ฒƒ

 

์œ„์™€ ๊ฐ™์€

c#์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ํ˜•์‹ ์ฒด๊ณ„๋Š” ๊ณต์šฉ ํ˜•์‹ ์‹œ์Šคํ…œ(common Type System : ๋ชจ๋‘๊ฐ€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹ ์ฒด๊ณ„)๋ผ๋Š” 

.NET์˜ ํ˜•์‹ ์ฒด๊ณ„ ํ‘œ์ค€์„ ๊ทธ๋Œ€๋กœ ๋”ฐ๋ฅด๊ณ  ์žˆ๋‹ค.

์œ„ ๊ด„ํ˜ธ์—์„œ '๋ชจ๋‘'๋ž€, C#์„ ๋น„๋กฏํ•œ .NET์„ ์ง€์›ํ•˜๋Š” ๋ชจ๋“  ์–ธ์–ด(๋‹ท๋„ท ์–ธ์–ด)๋ฅผ ๋œปํ•จ.

์ฆ‰, ๊ณต์šฉ ํ˜•์‹ ์‹œ์Šคํ…œ์€ ๋‹ท๋„ท ์–ธ์–ด๋“ค์ด๋ผ๋ฉด ๋ฐ˜๋“œ์‹œ ๋”ฐ๋ผ์•ผ ํ•˜๋Š” ๋ฐ์ดํ„ฐ ํ˜•์‹ ํ‘œ์ค€์ด๋‹ค.

๋งˆ.์†Œ๊ฐ€ ๋‹ท๋„ท "๊ณต์šฉ" ํ˜•์‹ ์‹œ์Šคํ…œ์„ ๋„์ž…ํ•œ ๊ฐ€์žฅ ํฐ ์ด์œ ๋Š” ๋‹ท๋„ท ์–ธ์–ด๋“ค๋ผ๋ฆฌ ์„œ๋กœ ํ˜ธํ™˜์„ฑ์„ ๊ฐ–๋„๋ก ํ•˜๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

 

(C#์ด ๊ฐ–๊ณ  ์žˆ๋Š” ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ํ˜•์‹๊ณผ ๋ณตํ•ฉ ๋ฐ์ดํ„ฐ ํ˜•์‹, ๊ฐ’ ํ˜•์‹๊ณผ ์ฐธ์กฐ ํ˜•์‹์„ ์•„์šฐ๋ฅด๋Š”

๋ชจ๋“  ์ฒด๊ณ„๋Š” ๊ณต์šฉ ํ˜•์‹ ์‹œ์Šคํ…œ์œผ๋กœ๋ถ€ํ„ฐ ์™”๋‹ค.)

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

namespace Hello
{

    class MainApp
    {
        static void Main(string[] args)
        {
            System.Int32 a = 123;
            int b = 456;

            WriteLine();
            WriteLine();
            
            System.String c = "I love you";
            string d = "Actually, I hate you";

            WriteLine($"Type : {a.GetType()}, Value : {a}");
            WriteLine($"Type : {b.GetType()}, Value : {b}");
            WriteLine($"Type : {c.GetType()}, Value : {c}");
            WriteLine($"Type : {d.GetType()}, Value : {d}");

            WriteLine($"Type : {a.GetType().ToString()}, Value : {a}");
            WriteLine($"Type : {b.GetType().ToString()}, Value : {b}");
            WriteLine($"Type : {c.GetType().ToString()}, Value : {c}");
            WriteLine($"Type : {d.GetType().ToString()}, Value : {d}");
        }
    }
}

์ถœ๋ ฅ

Type : System.Int32, Value : 123
Type : System.Int32, Value : 456
Type : System.String, Value : I love you
Type : System.String, Value : Actually, I hate you
Type : System.Int32, Value : 123
Type : System.Int32, Value : 456
Type : System.String, Value : I love you
Type : System.String, Value : Actually, I hate you

์œ„ ์ฝ”๋“œ์—์„œ ํ•ด๋‹น ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ ํ˜•์‹์„ ์•Œ์•„๋‚ด๊ธฐ ์œ„ํ•ด

System.Int32, int, System.String, string ํ˜•์‹ ๋ณ€์ˆ˜์˜ GetType() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ–ˆ๊ณ 

์ด ํ˜•์‹ ์ •๋ณด๋ฅผ ๋ฌด๋‚ฎ์—ด๋กœ ํ‘œ์‹œํ•˜๊ธฐ ์œ„ํ•ด ToString() ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ–ˆ๋‹ค.

 

๋ชจ๋“  ๋ฐ์ดํ„ฐํ˜•์‹์€ object ํ˜•์‹์œผ๋กœ๋ถ€ํ„ฐ ์ƒ์†๋ฐ›๋Š”๋‹ค.

์ƒ์†์„ ๋ฐ›์œผ๋ฉด ๋ถ€๋ชจ๊ฐ€ ๊ฐ€์ง„ ๊ฒƒ์„ ๋ชจ๋‘ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค.

GetType()๊ณผ ToString() ๋ฉ”์†Œ๋“œ๋Š” ์‚ฌ์‹ค System.Int32์™€ int

System.String๊ณผ string ํ˜•์‹์ด object ํ˜•์‹์œผ๋กœ๋ถ€ํ„ฐ ๋ฌผ๋ ค๋ฐ›์•„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๊ฒƒ์ด๋‹ค.

 

GetType() ๋ฉ”์†Œ๋“œ๋Š” ๊ฐ์ฒด์˜ ์‹ค์ œ ํ˜•์‹์„ ์•Œ๋ ค์ฃผ๊ณ ,

ToString() ๋ฉ”์†Œ๋“œ๋Š” ๋ณ€์ˆ˜์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ‘œ์‹œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 

 

728x90