πŸ’» Programming Language/C#

19. μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μžλ™ ν”„λ‘œνΌν‹° μ‚¬μš©λ²•

S.Honey 2022. 4. 7. 09:28
namespace InterfacePropertyEx
{   
    // μΈν„°νŽ˜μ΄μŠ€ ν”„λ‘œνΌν‹°
    interface IKeyValue
    {
        // μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μžλ™ ν”„λ‘œνΌν‹°λŠ” C# μ»΄νŒŒμΌλŸ¬κ°€ μžλ™μœΌλ‘œ κ΅¬ν˜„ν•΄μ£Όμ§€ μ•ŠλŠ”λ‹€.
        // λ”°λΌμ„œ, ν•΄λ‹Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†λ°›λŠ” ν΄λž˜μŠ€μ—μ„œ κ΅¬ν˜„ν•΄μ£Όμ–΄μ•Ό ν•œλ‹€.
        string Key { get; set; }
        string Value { get; set; }
    }

    class KeyValue : IKeyValue
    {
        public string Key { get; set; }
        public string Value { get; set; }
        // μ΄λ ‡κ²Œ μƒμ†λ°›λŠ” ν΄λž˜μŠ€μ—μ„œ μžλ™ν”„λ‘œνΌν‹°λ₯Ό μ΄μš©ν•΄μ„œ κ΅¬ν˜„ν•  수 μžˆλ‹€.
        // IKeyValue의 μΈν„°νŽ˜μ΄μŠ€λ₯Ό κ΅¬ν˜„ν•΄μ£Όκ³  있음(즉, μ»΄νŒŒμΌλŸ¬κ°€ μžλ™μœΌλ‘œ ν”„λ‘œνΌν‹°λ₯Ό κ΅¬ν˜„ν•΄μ€Œ)
    }
    class Program
    {
        static void Main(string[] args)
        {
            KeyValue kv = new KeyValue()
            {
                Key = "μ΄ˆλ“±ν•™κ΅",
                Value = "μ‚°μ²œ"
            };

            Console.WriteLine($"{kv.Value} {kv.Key}");
        }
    }
}
Output

μ‚°μ²œ μ΄ˆλ“±ν•™κ΅
  • μΈν„°νŽ˜μ΄μŠ€(Interface)μ—λŠ” κ΅¬ν˜„λΆ€κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”λ‹€.
  • μœ„μ˜ μ½”λ“œμ™€ 같이 μΈν„°νŽ˜μ΄μŠ€ λ‚΄λΆ€μ—μ„œ μžλ™ ν”„λ‘œνΌν‹°λ₯Ό μ‚¬μš©ν•˜κ²Œλ˜λ©΄ κ΅¬ν˜„λΆ€κ°€ μ‘΄μž¬ν•˜μ§€ μ•ŠλŠ”κ²ƒμž„μ„ μ•Œκ³ , μƒμ†λ°›λŠ” ν΄λž˜μŠ€μ—μ„œ κ΅¬ν˜„λΆ€λ₯Ό μ •μ˜ν•΄μ•Όν•œλ‹€.
  • μ½”λ“œμ—μ„œ IKeyValueλ₯Ό μƒμ†ν•œ KeyValueμ—μ„œλ„ μžλ™ ν”„λ‘œνΌν‹°λ₯Ό μ΄μš©ν•˜κ³  있으며, ν•΄λ‹Ή 클래슀 λ‚΄ μžλ™ν”„λ‘œνΌν‹°λ₯Ό μ΄μš©ν•΄ IKeyValue μΈν„°νŽ˜μ΄μŠ€μ˜ μžλ™ ν”„λ‘œνΌν‹°λ“€μ„ κ΅¬ν˜„ν•΄μ£Όκ³  μžˆλŠ” 것이닀.