250x250
Rainbow๐ŸŒˆCoder
My dev Note๐Ÿ“’
Rainbow๐ŸŒˆCoder
์ „์ฒด ๋ฐฉ๋ฌธ์ž
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (411)
    • ๊ณต์ง€์‚ฌํ•ญ (0)
    • Debugger (10)
      • Visual Studio Debugger (1)
      • Chrome DevTools (3)
      • Visual Studio Code Debugger (4)
      • eclipse (1)
      • intelliJ (1)
    • OOP (2)
      • OOP (2)
    • TypeScript (54)
      • ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ TypeScript (54)
    • Javascript (87)
      • Javascript (45)
      • Node.js (19)
      • React (5)
      • FE ๊ฐœ๋ฐœํ™˜๊ฒฝ์„ค์ • (3)
      • React์™€ Node ๊ฐ™์ด ๋•Œ๋ ค์žก๊ธฐ (6)
      • next.js (2)
      • pixi.js (7)
    • ๋งˆํฌ์—… (23)
      • Html & Css (23)
    • C# (80)
      • C# (12)
      • ์ด๊ฒƒ์ด C#์ด๋‹ค (68)
    • C++ (30)
      • c++ (27)
      • win api (3)
    • Unity (18)
      • Unity(๊ธฐ์ดˆ) (8)
      • Unity(C#์ค‘๊ธ‰) (5)
      • ์œ ๋‹ˆํ‹ฐ ํฌํ†ค(๋„คํŠธ์›Œํฌ) (4)
      • unity c# MyCode (1)
    • Java & Spring (29)
      • Java (11)
      • ์Šคํ”„๋ง (8)
      • Java Algorithm (9)
      • Javs Data Structures (1)
    • ์ž๋ฃŒ๊ตฌ์กฐ์™€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (15)
      • ์ž๋ฃŒ๊ตฌ์กฐ (5)
      • ์•Œ๊ณ ๋ฆฌ์ฆ˜ (10)
    • ํ˜•์ƒ๊ด€๋ฆฌ (15)
      • Git (11)
      • ์†Œ์ŠคํŠธ๋ฆฌ (3)
    • ๊ทธ๋ž˜ํ”ฝ์Šค (7)
      • WebGl (7)
    • AWS (3)
      • aws (3)
    • ๋ฆฌ๋ˆ…์Šค (5)
      • ๋ฆฌ๋ˆ…์Šค (5)
    • ์ฑ… ๋ฆฌ๋ทฐ (13)
      • ํด๋ฆฐ์ฝ”๋“œ(์ฑ…๋ฆฌ๋ทฐ) (3)
      • ์œ ์ง€๋ณด์ˆ˜๊ฐ€๋Šฅํ•œ์ฝ”๋”ฉ์˜๊ธฐ์ˆ C#ํŽธ(์ฑ…๋ฆฌ๋ทฐ) (1)
      • ๋ฆฌํŒฉํ† ๋ง(์ž๋ฐ”์Šคํฌ๋ฆฝํŠธํŒ) (9)
    • Server (2)
      • ๊ฒŒ์ž„ ์„œ๋ฒ„(๋„คํŠธ์›Œํฌ, ๋ฉ€ํ‹ฐ์“ฐ๋ ˆ๋“œ,OS) (2)
    • ์„ค๊ณ„, ์•„ํ‚คํ…์ณ (4)
    • ํŒŒ์ด์ฌ (5)
    • ๋””์ž์ธํŒจํ„ด (2)
    • mocha (2)
    • Jest (1)
    • Spine (1)
    • ์ธ๊ณต์ง€๋Šฅ (1)
      • ํ˜ผ์ž๊ณต๋ถ€ํ•˜๋Š”๋จธ์‹ ๋Ÿฌ๋‹+๋”ฅ๋Ÿฌ๋‹ (1)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ํƒœ๊ทธ
  • ๋ฐฉ๋ช…๋ก

๊ณต์ง€์‚ฌํ•ญ

์ธ๊ธฐ ๊ธ€

ํƒœ๊ทธ

  • ์œ„์ž„
  • ์ปดํฌ์ง€์…˜
  • MySQL
  • ใ…ฃใ„ท

์ตœ๊ทผ ๋Œ“๊ธ€

์ตœ๊ทผ ๊ธ€

ํ‹ฐ์Šคํ† ๋ฆฌ

hELLO ยท Designed By ์ •์ƒ์šฐ.
Rainbow๐ŸŒˆCoder

My dev Note๐Ÿ“’

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

28. ์ค‘์ฒฉ ํด๋ž˜์Šค

2022. 2. 11. 16:52
728x90

์ค‘์ฒฉ ํด๋ž˜์Šค๋Š” ํด๋ž˜์Šค ์•ˆ์— ์„ ์–ธ๋˜์–ด ์žˆ๋Š” ํด๋ž˜์Šค์ด๋‹ค. 

ํด๋ž˜์Šค ์•ˆ์— ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์ „๋ถ€์ด๋‹ค.

๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ฑฐ๋‚˜ ๊ฐ์ฒด์˜ ๋ฉ”์†Œ๋“œ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ๋ฒ•๋„ ๋ณดํ†ต ํด๋ž˜์Šค์™€ ๋˜‘๊ฐ™๋‹ค.

์ค‘์ฒฉํด๋ž˜์Šค๋Š” ์ž์‹ ์ด ์†Œ์†๋œ ํด๋ž˜์Šค์˜ ๋ฉค๋ฒ„์— ์ž์œ ๋กญ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.(private ๋ฉค๋ฒ„๋„!)

 

์ค‘์ฒฉํด๋ž˜์Šค๋ฅผ ์“ฐ๋Š” ์ด์œ 

- ํด๋ž˜์Šค ์™ธ๋ถ€์— ๊ณต๊ฐœํ•˜๊ณ  ์‹ถ์ง€ ์•Š์€ ํ˜•์‹์„ ๋งŒ๋“ค๊ณ ์ž ํ•  ๋•Œ

- ํ˜„์žฌ ํด๋ž˜์Šค์˜ ์ผ๋ถ€๋ถ„์ฒ˜๋Ÿผ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“ค๊ณ ์ž ํ•  ๋•Œ

 

๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ private ๋ฉค๋ฒ„์—๋„ ๋งˆ๊ตฌ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ค‘์ฒฉ ํด๋ž˜์Šค๋Š” ์€๋‹‰์„ฑ์„ ๋ฌด๋„ˆ๋œจ๋ฆฌ๊ธฐ๋Š” ํ•˜์ง€๋งŒ,

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

    class OuterClass
    {
        private int OuterMember;
        class NestedClass
        {
            public void DoSomething()
            {
                OuterClass outer = new OuterClass();
                outer.OuterMember = 10;
            }
        }
    }

 

class OuterClass
{
     class NesstedClass{}
}

 

<์˜ˆ์ œ ์ฝ”๋“œ>

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;

namespace Overriding
{
    class Configuration
    {
        private List<ItemValue> listConfig = new List<ItemValue>(); //์ค‘์ฒฉ ํด๋ž˜์Šค
        public void SetConfig(string item, string value)
        {
            ItemValue iv = new ItemValue(); //๋ฆฌ์ŠคํŠธ์— ์Œ“์„ ๊ฐ์ฒด ์ƒ์„ฑ
            iv.SetValue(this, item, value); //๊ฐ์ฒด์— ์ ์ ˆํ•œ ๊ฐ’ ํ• ๋‹น
        }
        public string GetConfig(string item)
        {
            foreach(ItemValue iv in listConfig) //๋ฆฌ์ŠคํŠธ์— ์Œ“์ธ (์ค‘์ฒฉํด๋ž˜์Šค๋กœ ๋งŒ๋“ )๊ฐ์ฒด ํƒ์ƒ‰
            {
                if (iv.GetItem() == item) //GetItem()๋กœ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ์™€ ๊ฐ™์œผ๋ฉด
                    return iv.GetValue(); //GetValue()
            }
            return ""; //GetItem()๋กœ ํ˜ธ์ถœํ•œ ๊ฐ’์ด ์—†์œผ๋ฉด ๋นˆ๊ฐ’ ์ถœ๋ ฅ
        }
        private class ItemValue //Configuration ํด๋ž˜์Šค ์•ˆ์— ์„ ์–ธ๋œ ์ค‘์ฒฉ ํด๋ž˜์Šค์ด๋‹ค.
        {                                    //private๋กœ ์„ ์–ธํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—
                                             //Configuration ํด๋ž˜์Šค ๋ฐ–์—์„œ๋Š” ๋ณด์ด์ง€ ์•Š๋Š”๋‹ค.
            private string item;
            private string value;

            public void SetValue(Configuration config, string item, string value)
            {
                this.item = item; //์ดˆ๊ธฐํ™”
                this.value = value; //์ดˆ๊ธฐํ™”
                bool found = false; //๋ฆฌ์ŠคํŠธ์— Addํ•˜๊ธฐ ์œ„ํ•œ flag

                for(int i=0; i<config.listConfig.Count; i++)
                {
                    if(config.listConfig[i].item == item)
                    {
                        config.listConfig[i] = this;
                        found = true;
                        break; 
                    }
                }
                if (found == false)
                {
                    config.listConfig.Add(this); //๊ธฐ๋ฐ˜ ํด๋ž˜์Šค ๋‚ด์— ์žˆ๋Š” ๋ฆฌ์ŠคํŠธ์— ์ถ”๊ฐ€(์ค‘์ฒฉํด๋ž˜์Šคํ™œ์šฉ)
                }
            }
            public string GetItem(){ return item; }
            public string GetValue() { return value; }
        }
    }

    class MainApp
    {
        static void Main(string[] args)
        {
            Configuration config = new Configuration();
            config.SetConfig("Version", "V 5.0.0");//์•„์ดํ…œ, value
            config.SetConfig("Size", "655,324 KB");//์•„์ดํ…œ, value
            WriteLine(config.GetConfig("Version")); //V 5.0.0
            WriteLine(config.GetConfig("Size")); //655,324 KB
            config.SetConfig("Version","V 5.0.1");//์•„์ดํ…œ, value
            WriteLine(config.GetConfig("Version")); //V 5.0.1
            config.SetConfig("Version", "V 5.0.7");//์•„์ดํ…œ, value
            WriteLine(config.GetConfig("Version")); //V 5.0.7
            Configuration config1 = new Configuration();
            config1.SetConfig("Version", "V 5.0.2");//์•„์ดํ…œ, value
            config1.SetConfig("Size", "784,324 KB");//์•„์ดํ…œ, value
            WriteLine(config1.GetConfig("Version")); //V 5.0.2
            WriteLine(config1.GetConfig("Size")); //784,324 KB

        }
    }
}

<์ถœ๋ ฅ ๊ฒฐ๊ณผ>

V 5.0.0
655,324 KB
V 5.0.1
V 5.0.7
V 5.0.2
784,324 KB

<์˜ˆ์ œ 2>

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;

namespace Overriding
{
    class Configuration
    {
        List<ItemValue> listConfig = new List<ItemValue>();

        public void SetConfig(string item, string value)
        {
            ItemValue iv = new ItemValue();
            iv.SetValue(this,item,value);
        }

        public string GetConfig(string item)
        {
            foreach(ItemValue iv in listConfig)
            {
                if (iv.GetItem() == item)
                    return iv.GetValue();
            }
            return "No Item";
        }

        private class ItemValue
        {
            private string item;
            private string value;

            public void SetValue(Configuration config, string item, string value)
            {
                this.item = item;
                this.value = value;

                bool found = false;
                for(int i=0; i<config.listConfig.Count; i++)
                {
                    if(config.listConfig[i].item == item)
                    {
                        config.listConfig[i] = this;
                        found = true;
                        break;
                    }
                }
                if (found == false)
                    config.listConfig.Add(this);
            }
            public string GetItem()
            {
                return item;
            }
            public string GetValue()
            {
                return value;
            }
        }
    }

    class MainApp
    {
        static void Main(string[] args)
        {
            Configuration config = new Configuration();
            config.SetConfig("Version","V 5.0");
            config.SetConfig("Size", "655,324 KB"); 
            WriteLine(config.GetConfig("test")); //No Item
            WriteLine(config.GetConfig("Version")); //V 5.0
            WriteLine(config.GetConfig("Size")); //655,324 KB
            config.SetConfig("Version", "V 5.1");
            WriteLine(config.GetConfig("Version")); //V 5.1
        }
    }
}

<์ถœ๋ ฅ ๊ฒฐ๊ณผ>

No Item
V 5.0
655,324 KB
V 5.1

<์ตœ์ข… ์—ฐ์Šต>

using System;
using System.Collections;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using static System.Console;

namespace Overriding
{
    class Configuration
    {
        List<Itemvalue> listconfig = new List<Itemvalue>();
        public void SetConfig(string item, string value)
        {
            Itemvalue iv = new Itemvalue();
            iv.SetValue(this, item, value);
        }

        public string GetConfig(string item)
        {
            foreach(Itemvalue iv in listconfig)
            {
                if (iv.GetItem() == item)
                    return iv.GetValue();
            }
            return "์—†์–ด์š” ๊ทธ๋Ÿฐ๊ฑฐ.";
        }
        private class Itemvalue
        {
            private string item;
            private string value;
            public void SetValue(Configuration config, string item, string value)
            {
                this.item = item;
                this.value = value;

                bool found = false;
                for(int i=0; i< config.listconfig.Count; i++)
                {
                    if(config.listconfig[i].item == item)
                    {
                        config.listconfig[i] = this;
                        found = true;
                        break;
                    }
                }
                if (found == false)
                    config.listconfig.Add(this);
            }
            public string GetItem() { return item; }
            public string GetValue() { return value; }
        }
    }

    class MainApp
    {
        static void Main(string[] args)
        {
            Configuration config = new Configuration();
            config.SetConfig("์žฅ๋น„","์ฐฉํ•œ ํ™œ");
            config.SetConfig("ํŽซ", "ํ† ๋ผ");
            WriteLine(config.GetConfig("์žฅ๋น„")); //์ฐฉํ•œ ํ™œ
            WriteLine(config.GetConfig("ํŽซ")); //ํ† ๋ผ
            config.SetConfig("์žฅ๋น„", "๋‚˜์œ ํ™œ");
            WriteLine(config.GetConfig("์žฅ๋น„")); //๋‚˜์œ ํ™œ
            WriteLine(config.GetConfig("์˜์ƒ")); //์—†์–ด์š” ๊ทธ๋Ÿฐ๊ฑฐ.

            Configuration config2 = new Configuration();
            config2.SetConfig("์žฅ๋น„", "์ฐฉํ•œ ํ™œ");
            WriteLine(config2.GetConfig("์žฅ๋น„")); //์ฐฉํ•œ ํ™œ
            WriteLine(config.GetConfig("์žฅ๋น„")); //๋‚˜์œ ํ™œ
        }
    }
}

<์ถœ๋ ฅ ๊ฒฐ๊ณผ>

์ฐฉํ•œ ํ™œ
ํ† ๋ผ
๋‚˜์œ ํ™œ
์—†์–ด์š” ๊ทธ๋Ÿฐ๊ฑฐ.
์ฐฉํ•œ ํ™œ
๋‚˜์œ ํ™œ
728x90

'C# > ์ด๊ฒƒ์ด C#์ด๋‹ค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

30. ํ™•์žฅ ๋ฉ”์†Œ๋“œ  (0) 2022.02.14
29. ๋ถ„ํ•  ํด๋ž˜์Šค  (0) 2022.02.11
27. ์ฝ๊ธฐ ์ „์šฉ ํ•„๋“œ, readonly  (0) 2022.02.11
26. ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ด‰์ธํ•˜๊ธฐ  (0) 2022.02.11
25. ์˜ค๋ฒ„๋ผ์ด๋”ฉ๊ณผ ๋‹คํ˜•์„ฑ virtual, override  (0) 2022.02.11
    'C#/์ด๊ฒƒ์ด C#์ด๋‹ค' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
    • 30. ํ™•์žฅ ๋ฉ”์†Œ๋“œ
    • 29. ๋ถ„ํ•  ํด๋ž˜์Šค
    • 27. ์ฝ๊ธฐ ์ „์šฉ ํ•„๋“œ, readonly
    • 26. ์˜ค๋ฒ„๋ผ์ด๋”ฉ ๋ด‰์ธํ•˜๊ธฐ
    Rainbow๐ŸŒˆCoder
    Rainbow๐ŸŒˆCoder
    ๋ชฐ๋ผ๋„ ๊ฒฐ๊ตญ์€ ์•„๋Š” ๊ฐœ๋ฐœ์ž, ๊ทธ๋Ÿฐ ์‚ฌ๋žŒ์ด ๋˜๊ธฐ ์œ„ํ•œ ๋งค์ผ์˜ ํ•œ๊ฑธ์Œ

    ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”