C#/이것이 C#이닀

44. μΈν„°νŽ˜μ΄μŠ€μ˜ ν”„λ‘œνΌν‹°

Rainbow🌈Coder 2022. 2. 23. 13:22
728x90

μΈν„°νŽ˜μ΄μŠ€λŠ” λ©”μ†Œλ“œ 뿐만 μ•ˆλ‹ˆλΌ ν”„λ‘œνΌν‹°μ™€ μΈλ±μ„œλ„ κ°€μ§ˆ 수 μžˆλ‹€.

ν”„λ‘œνΌν‹°λ‚˜ μΈλ±μ„œλ₯Ό κ°€μ§„ μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†ν•˜λŠ” ν΄λž˜μŠ€κ°€ 'λ°˜λ“œμ‹œ' ν•΄λ‹Ή ν”„λ‘œνΌν‹°μ™€ μΈλ±μ„œλ₯Ό κ΅¬ν˜„ν•΄μ•Ό ν•˜λŠ” 것은 물둠이닀.

(λ‹Ήμ—°ν•œ μ΄μ•ΌκΈ°μ΄μ§€λ§Œ)μΈν„°νŽ˜μ΄μŠ€μ— λ“€μ–΄κ°€λŠ” ν”„λ‘œνΌν‹°λŠ” κ΅¬ν˜„μ„ κ°–μ§€ μ•ŠλŠ”λ‹€.

μΈν„°νŽ˜μ΄μŠ€μ˜ ν”„λ‘œνΌν‹° 선언은 클래슀의 μžλ™ κ΅¬ν˜„ ν”„λ‘œνΌν‹° μ„ μ–Έκ³Ό κ·Έ λͺ¨μŠ΅μ΄ λ™μΌν•˜λ‹€.

 

λ‹€μŒμ€ μΈν„°νŽ˜μ΄μŠ€μ˜ ν”„λ‘œνΌν‹° μ„ μ–Έ ν˜•μ‹μ΄λ‹€.

 

interface μΈν„°νŽ˜μ΄μŠ€μ΄λ¦„

{

     public ν˜•μ‹ ν”„λ‘œνΌν‹°μ΄λ¦„1

     {

          get; set;

     }

 

     public ν˜•μ‹ ν”„λ‘œνΌν‹°μ΄λ¦„2

     {

          get; set;

     }

     //...

}

 

λ‹€μŒμ€ ν”„λ‘œνΌν‹°λ₯Ό κ°€μ§„ μΈν„°νŽ˜μ΄μŠ€μ™€ 이λ₯Ό μƒμ†ν•˜λŠ” νŒŒμƒ 클래슀의 μ˜ˆμ΄λ‹€.

 

interface Iproduct

{

     string ProductName

     {

           get;

           set;

     }

}

 

class Product : Iproduct

{

     private string productName;

     string ProductName

     {

           get;

           set;

     }

}

 

<예제>

using System;

namespace PropertiesInterface
{
    interface INamedValue
    {
        string Name { get; set; } //μžλ™ κ΅¬ν˜„ ν”„λ‘œνΌν‹°μ²˜λŸΌ κ΅¬ν˜„μ΄ μ—†μ§€λ§Œ, C# μ»΄νŒŒμΌλŸ¬λŠ” μΈν„°νŽ˜μ΄μŠ€μ˜ ν”„λ‘œνΌν‹°μ— λŒ€ν•΄μ„œλŠ”
        //μžλ™μœΌλ‘œ κ΅¬ν˜„ν•΄μ£Όμ§€ μ•ŠλŠ”λ‹€. μ΄μœ λŠ”... μΈν„°νŽ˜μ΄μŠ€λŠ” μ–΄λ–€ κ΅¬ν˜„λ„ κ°€μ§€μ§€ μ•ŠκΈ° λ•Œλ¬Έμ΄λ‹€!
        string Value { get; set; }
    }

    class NamedValue : INamedValue
    {
    //INamedValue μΈν„°νŽ˜μ΄μŠ€λ₯Ό μƒμ†ν•˜λŠ” NamedValue ν΄λž˜μŠ€λŠ” λ°˜λ“œμ‹œ
    //Nameκ³Ό Valueλ₯Ό κ΅¬ν˜„ν•΄μ•Όν•œλ‹€.
    //μ΄λ•Œ μžλ™ κ΅¬ν˜„ ν”„λ‘œνΌν‹°λ₯Ό μ΄μš©ν•˜λŠ” 것도 κ°€λŠ₯ν•˜λ‹€.
        public string Name { get; set; }
        public string Value { get; set; }
    }
    class MainApp
    {
        static void Main(string[] args)
        {
            NamedValue name = new NamedValue() { Name="이름", Value="λ¬΄μ§€κ°œμ½”λ”" };
            NamedValue height = new NamedValue() { Name = "ν‚€", Value = "190cm" };
            NamedValue weight = new NamedValue() { Name = "무게", Value = "88kg" };

            Console.WriteLine($"{name.Name} : {name.Value}");
            Console.WriteLine($"{height.Name} : {height.Value}");
            Console.WriteLine($"{weight.Name} : {weight.Value}");
        }
    }
}

<좜λ ₯ κ²°κ³Ό>

이름 : λ¬΄μ§€κ°œμ½”λ”
ν‚€ : 190cm
무게 : 88kg

+

728x90