C#

[C#] ์ผ๋ฐ˜ํ™”๋œ ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์ปฌ๋ ‰์…˜์˜ ํ™œ์šฉ

hyonie 2024. 5. 15. 21:57

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

์ œ๋„ค๋ฆญ์€ ํƒ€์ž…์„ ๋™์ ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ๋•Œ ๋ช…ํ™•ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋‚˜, ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์ „์— ๊ฒฐ์ •๋œ๋‹ค. ์ด๋ฅผ ํ…Œ๋ฉด, ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฌ๋Ÿฌ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ์ˆ˜ ์žˆ๋Š” ์ปฌ๋ ‰์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿฐ ์‹์œผ๋กœ ์ œ๋„ค๋ฆญ์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ์•ˆ์ •์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ๋ฌผ๋ฆฌ์ ์œผ๋กœ๋Š” ๊ตฌ์ฒดํ™”๋˜์ง€ ์•Š์ง€๋งŒ, ๋…ผ๋ฆฌ์ ์œผ๋กœ๋Š” ํƒ€์ž…์ด ๊ฒฐ์ •๋˜์–ด ์žˆ๋‹ค. ์ œ๋„ค๋ฆญ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์€ ์ข€ ๋‚ฎ์„ ์ˆ˜ ์žˆ์œผ๋‚˜ ํƒ€์ž… ์•ˆ์ •์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ ์ธก๋ฉด์—์„œ ๋งค์šฐ ์œ ์šฉํ•˜๋‹ค. ์ œ๋„ค๋ฆญ์— ๋Œ€ํ•ด ์ข€ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž.

 

 


์ผ๋ฐ˜ํ™”๋œ ์ œ๋„ค๋ฆญ ํ”„๋กœ๊ทธ๋ž˜๋ฐ - ํƒ€์ž… ์ธ์ˆ˜์˜ ํ™œ์šฉ

ํƒ€์ž… ์ธ์ˆ˜๋Š” ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ฐ˜ํ™”๋œ ํด๋ž˜์Šค๋‚˜ ๋ฉ”์†Œ๋“œ๋ฅผ ์ •์˜ํ•˜๋Š” ๊ธฐ๋ฒ•์ด๋‹ค. ์ด๋Š” ๋‚ด๋ถ€ ๊ตฌ์กฐ๋‚˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋™์ผํ•˜๋˜ ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ ๋•Œ ์œ ์šฉํ•˜๋‹ค. C++์˜ ํ…œํ”Œ๋ฆฟ๊ณผ ๊ฐœ๋…์ ์œผ๋กœ ์œ ์‚ฌํ•˜๋‹ค. ์ œ๋„ค๋ฆญ์„ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ  ํƒ€์ž…์˜ ์•ˆ์ •์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ๋‹จ์ ์œผ๋กœ๋Š” ํ”„๋กœ๊ทธ๋žจ์ด ์ปค์ง€๊ณ  ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์ด ๋–จ์–ด์งˆ์ˆ˜ ์žˆ๋‹ค.

 


์ œ๋„ค๋ฆญ์˜ ํ•„์š”์„ฑ

์ œ๋„ค๋ฆญ์€ C#์—์„œ ์™œ ํ•„์š”ํ•œ์ง€ ์‚ดํŽด๋ณด์ž. ์ด ์ฝ”๋“œ์—์„œ๋Š” intํƒ€์ž…๊ณผ stringํƒ€์ž…์„ ๊ฐ๊ฐ ๋ž˜ํ•‘ํ•œ WraperInt์™€ WraperStringํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค. ์ด๋Ÿฌํ•œ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ’์„ ๋ž˜ํ•‘ํ•˜๊ณ , ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์„ค์ •ํ•  ๋•Œ๋Š” get๊ณผ set ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Ÿฌํ•œ ๋ฐฉ์‹์€ ํƒ€์ž…๋งˆ๋‹ค ์ค‘๋ณต๋œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผํ•˜๋ฏ€๋กœ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์ด ๋–จ์–ด์ง„๋‹ค.

class WrapperInt
{
    private int value;
    public WrapperInt() { value = 0; }
    public WrapperInt(int aValue)
    {
        value = aValue;
    }

    public int getValue()
    {
        return value;
    }
    public void setValue(int aValue)
    {
        value = aValue;
    }

    public void OutputValue()
    {
        Console.WriteLine(value);
    }
}

 class WrapperString
 {
     private string value;
     public WrapperString() { value = null;}
 }

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์—์„œ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜๋ฉด ํƒ€์ž…์„ ๋™์ ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด Wapper ํด๋ž˜์Šค๋ฅผ ์ œ๋„ค๋ฆญ์œผ๋กœ ๋งŒ๋“ค๋ฉด ๋‹ค์–‘ํ•œ ํƒ€์ž…์— ๋Œ€ํ•ด ๋™์ผํ•œ ๋ž˜ํ•‘ ๊ธฐ๋Šฅ์„ ์ œ๊ณต ํ• ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋˜๋ฉด ์ค‘๋ณต๋œ ์ฝ”๋“œ๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ๊ณ , ํƒ€์ž…๋ณ„๋กœ ํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์–ด์ง„๋‹ค. ๋”ฐ๋ผ์„œ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ์˜ ์œ ์—ฐ์„ฑ๊ณผ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 


 

int ํ˜•์‹์˜ ์‹œ์Šคํ…œ ๋ฉ”์„œ๋“œ getHashCode

C# ์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์ •์˜ํ•  ๋•Œ get๊ณผ set ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ •์˜ํ•œ๋‹ค.์ด ํ”„๋กœํผํ‹ฐ๋Š” ํ•ด๋‹น ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ์ ‘๊ทผ์„ ์ œ์–ดํ•˜๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ค๊ฑฐ๋‚˜ ์„ค์ •ํ•˜๋Š”๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.๊ทธ๋Ÿฌ๋‚˜ ์ผ๋ถ€ ๋‚ด์žฅ๋œ ํด๋ž˜์Šค์—๋Š” ์ง์ ‘์ ์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ๋‚˜ ๋™์ž‘์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ํŠน์ • ๋ฉ”์„œ๋“œ๋“ค์ด ๋‚ด์žฅ๋˜์–ด ์žˆ๋‹ค.

 

์˜ˆ๋ฅผ ๋“ค์–ด, int ์™€ ๊ฐ™์€ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•ด์„œ๋Š” ,NET ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ผ๋ถ€๋กœ ์ œ๊ณต๋˜๋Š” ๋‚ด์žฅ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‹ค. ๊ทธ ์ค‘ ํ•˜๋‚˜๊ฐ€ getHashCode๋ฉ”์„œ๋“œ์ด๋‹ค. ์ด ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด์˜ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ, ์‚ฌ์šฉ๋œ๋‹ค. ํ•ด์‹œ ์ฝ”๋“œ๋Š” ๊ฐ์ฒด์˜ ๊ณ ์œ ํ•œ ์‹๋ณ„์ž๋กœ ์‚ฌ์šฉ๋˜๊ณ , ํ•ด์‹œ ํ…Œ์ด๋ธ”๊ณผ ๊ฐ™์€ ์ž๋ฃŒ๊ตฌ์กฐ์—์„œ ๊ฐ์ฒด๋ฅผ ๊ฒ€์ƒ‰ํ•˜๊ฑฐ๋‚˜ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

 

๋”ฐ๋ผ์„œ ๋‚ด์žฅ๋œ ์ฝ”๋“œ์—์„œ getHashCode ๋ฉ”์„œ๋“œ๋Š” ํ•ด๋‹น ๊ฐ์ฒด์˜ ํ•ด์‹œ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค. ์ด๊ฑด ํ”„๋กœํผํ‹ฐ๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉ”์„œ๋“œ์ด๊ณ , ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ง์ ‘ ํ˜ธ์ถœํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

ํ”„๋กœํผํ‹ฐ์™€๋Š” ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ๊ฐœ๋…์ด์ง€๋งŒ, ๊ฐ์ฒด์˜ ์ƒํƒœ๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์ค‘์š”ํ•œ ๋™์ž‘์ด๋‹ค.

 

 


 

ํ”„๋กœํผํ‹ฐ ํ™œ์šฉ - get๊ณผ set ํ•จ์ˆ˜์˜ ๊ฐ„์†Œํ™”

C#์—์„œ๋Š” ํ”„๋กœํผํ‹ฐ๋ผ๋Š” ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ get๊ณผ set ํ•จ์ˆ˜๋ฅผ ๊ฐ„์†Œํ™”ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด์ „์—๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ  ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•ด ๋ช…์‹œ์ ์œผ๋กœ getValue()์™€ setValue() ๋ฉ”์†Œ๋“œ๋ฅผ ์ž‘์„ฑํ•ด์•ผ ํ–ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ”„๋กœํผํ‹ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด๋ฅผ ํ•˜๋‚˜์˜ ํ†ต์œผ๋กœ ๋ฌถ์–ด์„œ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์•„๋ž˜์™€ ๊ฐ™์ด ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋Š” ๊ธฐ์กด์˜ getValue()์™€ setValue() ๋ฉ”์†Œ๋“œ๋ฅผ ๋Œ€์ฒดํ•œ๋‹ค.

 public int Data
 {
     get { return this.value; }
     set { this.value = value; }
 }

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Data๋ผ๋Š” ํ”„๋กœํผํ‹ฐ๋ฅผ ํ†ตํ•ด ๊ฐ’์„ ๊ฐ€์ ธ์˜ค๊ณ  ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ธฐ๋Šฅ์ ์œผ๋กœ ์ด์ „์˜ get๊ณผ setํ•จ์ˆ˜์™€ ๋™์ผํ•˜๊ณ , ์ฝ”๋“œ๋ฅผ ๊ฐ„์†Œํ˜ธํ•˜๊ณ  ๊ฐ€๋…์„ฑ์„ ๋†’์ผ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœํผํ‹ฐ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ์ฝ”๋“œ ์ž‘์„ฑ์ด ๋” ํšจ์œจ์ ์ด๊ณ  ์ง๊ด€์ ์ผ์ˆ˜ ์žˆ๋‹ค.

 

 

 


 

์ œ๋„ค๋ฆญ์„ ํ™œ์šฉํ•œ Wrapper ํด๋ž˜์Šค

WrapperInt์™€ WrapperString์€ ๊ธฐ๋Šฅ์€ ๊ฐ™์ง€๋งŒ ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…๋งŒ ๋‹ค๋ฅธ ํด๋ž˜์Šค์ด๋‹ค. ์ด๋Ÿฐ ๋น„์Šทํ•œ ๊ธฐ๋Šฅ์„ ๊ฐ๊ฐ ์ •์˜ํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์œผ๋กœ ๋ณด์ธ๋‹ค. ๋Œ€์‹ ์— Wrapper๋ผ๋Š” ์ด๋ฆ„์˜ ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค์–ด์„œ ํƒ€์ž…์„ ์ •ํ•˜์ง€ ์•Š๊ณ , ์ œ๋„ค๋ฆญ์œผ๋กœ ๋งŒ๋“ค์ˆ˜ ์žˆ๋‹ค.

class Wrapper<T>
{
    private T value;
    public Wrapper() { value = default(T); }

    public Wrapper(T aValue)
    {
        value = aValue;
    }
    
    public T getValue()
    {
        return value;
    }
    
    public void setValue(T aValue)
    {
        value = aValue;
    }

    public void OutputValue()
    {
        Console.WriteLine(value);
    }
}

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด Wrapper ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์–‘ํ•œ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ž˜ํ•‘ํ•  ์ˆ˜ ์žˆ๋‹ค. Wrapper<int>๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด int ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ, Wrapper<string>์„ ์‚ฌ์šฉํ•˜๋ฉด string ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃฐ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒ ๋™์ ์œผ๋กœ ํƒ€์ž…์„ ๋ฐ›์•„๋“ค์ด๋Š” ๊ฒƒ์ด ์ œ๋„ค๋ฆญ์˜ ํ•ต์‹ฌ์ด๋‹ค.

๋™์ ์œผ๋กœ ํƒ€์ž…์„ ๋ฐ›๊ณ , ์ถœ๋ ฅ๋œ ๊ฒฐ๊ณผ

 

 


 

 

์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์˜ ํ•„์š”์„ฑ

 ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์€ ์ปฌ๋ ‰์…˜์„ ์ผ๋ฐ˜ํ™”ํ•œ ๊ฒƒ์œผ๋กœ ์ผ๋ฐ˜ ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ๋Š” object ํƒ€์ž…์ด์–ด์„œ ์ž„์˜์˜ ์š”์†Œ๋ฅผ ์ €์žฅํ•  ์ˆ˜์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ด๋Š” ๋ช‡๊ฐ€์ง€ ๋ถˆํŽธํ•œ์ ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์ปฌ๋ ‰์…˜์„ ์ฝ์„๋•Œ๋Š” ์›ํ•˜๋Š” ํƒ€์ž…์œผ๋กœ ์บ์ŠคํŒ…์„ ํ•ด์•ผ ํ•˜๊ณ , ์ž˜๋ชป๋œ ์บ์ŠคํŒ…์€ ์˜ค๋ฅ˜๋ฅผ ๋ฐœ์ƒ์‹œํ‚ฌ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ๊ฐ’ ํƒ€์ž…์„ ์ €์žฅํ•  ๋•Œ๋Š” object ํƒ€์ž…์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๋ฐ•์‹ฑ(boxing)์ด ํ•„์š”ํ•˜๊ณ , ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋Š” ์–ธ๋ฐ•์‹ฑ(unboxing)์ด ํ•„์š”ํ•˜๋‹ค.

 ์ด๋ ‡๊ฒŒ ์ผ๋ฐ˜์ ์ธ ์ปฌ๋ ‰์…˜์€ ๋„ˆ๋ฌด ์ผ๋ฐ˜์ ์ด์–ด์„œ ์ž˜๋ชป๋œ ์ฝ”๋“œ๋ฅผ ์ฐพ์•„๋‚ด๋Š” ๋ฐ์—๋Š” ์ถฉ๋ถ„ํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜์ง€ ๋ชปํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์ด ์ œ๊ณต๋œ๋‹ค. ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์€ ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ ํƒ€์ž…์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ํƒ€์ž… ์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ArrayList์˜ ์ œ๋„ค๋ฆญ ๋ฒ„์ „์€ List<T>์ด๋‹ค.

 

 


 

๋ฐ•์‹ฑ/์–ธ๋ฐ•์‹ฑ์˜ ํ•œ๊ณ„

๋ฐ•์‹ฑ๊ณผ ์–ธ๋ฐ•์‹ฑ์€ ํƒ๋ฐฐ์—์„œ ๋ฌผ๊ฑด์„ ๋ณด๋‚ด๊ณ  ๋ฐ›๋Š” ๊ฒƒ๊ณผ ์œ ์‚ฌํ•˜๋‹ค. ๋ณด๋‚ด๋Š” ์ชฝ์—์„œ๋Š” ๋ฌผ๊ฑด์„ ๋ฐ•์Šค์— ๋‹ด์•„์„œ(object ํƒ€์ž…์œผ๋กœ ๋งคํ•‘ํ•˜์—ฌ) ๋ณด๋‚ด์ง€๋งŒ ๋ฐ›๋Š” ์ชฝ์—์„œ๋Š” ๋ฐ•์Šค๋ฅผ ์—ด์–ด์„œ(์–ธ๋ฐ•์‹ฑํ•˜์—ฌ) ์‹ค์ œ ๋ฌผ๊ฑด์„ ๊บผ๋‚ธ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•จ์œผ๋กœ์จ ์ปฌ๋ ‰์…˜์˜ ์š”์†Œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๋ฐ•์‹ฑ์€ ๊ฐ’ ํ˜•์‹์„ objectํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค

 

์–ธ๋ฐ•์‹ฑ์€ object ํ˜•์‹์—์„œ ๊ฐ’ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค

 

 

 


 

 

 

์ผ๋ฐ˜ ์ปฌ๋ ‰์…˜๊ณผ ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์˜ ๋น„๊ต

 

์ผ๋ฐ˜ ์ปฌ๋ ‰์…˜

์ผ๋ฐ˜ ์ปฌ๋ ‰์…˜์ธ ArrayList๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋งˆ๋‹ค ๋ฐ์ดํ„ฐ์˜ ํƒ€์ž…์„ ๋ช…์‹œํ•ด์•ผ ํ–ˆ๋‹ค. ์ด๋Š” ๊ฐ ์š”์†Œ์˜ ํƒ€์ž…์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•˜๋Š” ๋ถˆํŽธํ•จ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.

 static void Main(string[] args)
 {
     ArrayList ar = new ArrayList(10);
     ar.Add(1);
     ar.Add(2.34);
     ar.Add("string");

     int i = (int)ar[0];
     double d = (double)ar[1];
     string s = (string)ar[2];

     Console.WriteLine("{0}, {1}, {2}",i,d,s); // ์ถœ๋ ฅ: 1, 2.34, string

 }

์ด๋Ÿฌํ•œ ๋ถˆํŽธํ•จ์„ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์ด ๋‚˜์™”๋‹ค. ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด List์™€ ๊ฐ™์€ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ArrayList์˜ ์ œ๋„ค๋ฆญ ๋ฒ„์ „์ด๋‹ค. ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํƒ€์ž…์„ ๋ช…์‹œํ•˜์—ฌ ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ ธ์˜ฌ ํ•„์š”๊ฐ€ ์—†๋‹ค.

 

 

์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜

๋ฆฌ์ŠคํŠธ๋Š” ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์œผ๋กœ, ํƒ€์ž…์„ ๋™์ ์œผ๋กœ ์ง€์ •ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋ฌธ์ž์—ด๋งŒ ์ €์žฅํ•˜๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•  ๋•Œ๋Š” List<string>์„ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋ฆฌ์ŠคํŠธ์—๋Š” ๋ฌธ์ž์—ด๋งŒ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ณ , ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ๋Š” ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

 List<string> list = new List<string>();
 list.Add("C#");
 list.Add("ASP.NET");
 list.Add("์žฌ๋ฐŒ๋‹ค.");

 foreach (string item in list)
 {
     Console.WriteLine(item);
 }

์œ„ ์ฝ”๋“œ์—์„œ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ณ  ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๋งŒ์•ฝ ์ •์ˆ˜๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•œ๋‹ค๋ฉด ์ปดํŒŒ์ผ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ์ œ๋„ค๋ฆญ ์ปฌ๋ ‰์…˜์€ ๋™์ ์œผ๋กœ ์ง€์ •ํ•œ ํƒ€์ž… ์ด์™ธ์˜ ๋‹ค๋ฅธ ํƒ€์ž…์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋„๋ก ๋ณด์žฅํ•œ๋‹ค.