«   2018/10   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      
Statistics Graph
관리 메뉴

언제나 휴일

[C# 실습] 인덱서 정의 예제 소스 코드 본문

언어 자료구조 알고리즘/프로그래밍 실습

[C# 실습] 인덱서 정의 예제 소스 코드

언제나 휴일 언제나휴일 2018.09.12 10:14

[C# 실습] 인덱서 정의 예제 소스 코드



인덱서

컬렉션 형식에서 키를 인덱스 연산자에 표현하여 값에 접근할 수 있게 정의하는 것


다음은 email을 키로 하며 이름을 값으로 하는 아주 간단한 사전 형식을 정의하여 사용한 예제입니다.

참고 사이트


Program.cs

using System;

 

namespace _006_캡슐화_인덱서_2

{

    class Program

    {

        static void Main(string[] args)

        {

            EDictionary edic = new EDictionary();

            edic["hello@daum.net"] = "홍길동";

            edic["yahoo@naver.net"] = "강감찬";

            edic["abc@gmail.net"] = "아바싸";

 

            Console.WriteLine(edic["hello@daum.net"]);

            Console.WriteLine(edic["yahoo@naver.net"]);

            Console.WriteLine(edic["abc@gmail.net"]);

        }

    }

}

 


EDictionary.cs


namespace _006_캡슐화_인덱서_2

{

    internal class EDictionary

    {

        string[] emails = new string[100];

        string[] names = new string[100];

        internal string this[string email]

        {

            get

            {

                int index = 0;

                for(index=0; index<100;index++)

                {

                    if(emails[index] == email)

                    {

                        return names[index];

                    }

                }

                return string.Empty;

            }

            set

            {

                int index = 0;

                for (index = 0; index < 100; index++)

                {

                    if (emails[index] == email)//같은 값이 있으면

                    {

                        names[index] = value;

                        return;

                    }

                    else if(emails[index] == null)//빈 자리를 발견하면

                    {

                        emails[index] = email;

                        names[index] = value;

                        return;

                    }

                }

            }

        }

    }

}


0 Comments
댓글쓰기 폼