Indexer.zip



인덱서 사용예제


해당 클래스의 인덱서를 정의하여 사용하였다 string 값을 입력받아 Stu 클래스의 num 값을 반환한다.


Main class

  1 namespace Indexer

  2 {
  3     class Program
  4     {
  5         static void Main(string[] args)
  6         {
  7             Manager m = new Manager();
  8             Stu s = new Stu(1, "홍길동");
  9             Stu s1 = new Stu(2, "후후훗");
 10             Stu s2 = new Stu(3, "히히힛");
 11             m.AddStu(s);
 12             m.AddStu(s1);
 13             m.AddStu(s2);
 14             int num,num1,num2;
 15             num = m["홍길동"];
 16             num1 = m["후후훗"];
 17             num2 = m["히히힛"];
 18             Console.WriteLine("{0},{1},{2}",num, num1, num2);
 19         }
 20     }
 21 }


Stu class

  1 using System;

  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 namespace Indexer
  7 {
  8     class Stu
  9     {
 10         int num;
 11         string name;
 12         List<Stu> arr = new List<Stu>();
 13         public Stu(int _num, string _name)
 14         {
 15             num = _num;
 16             name = _name;
 17         }
 18         public int Num
 19         {
 20             get
 21             {
 22                 return num;
 23             }
 24         }
 25         public string Name
 26         {
 27             get
 28             {
 29                 return name;
 30             }
 31         }
 32     }
 33 }
 34 


Manager class

  1 using System;

  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Text;
  5 
  6 namespace Indexer
  7 {
  8     class Manager
  9     {
 10         List<Stu> arr = new List<Stu>();
 11 
 12         public void AddStu(Stu a)
 13         {
 14             arr.Add(a);
 15         }
 16         public int this[string n] // 반환형 데이터 타입int 입력을 string n 
 17         {
 18             get
 19             {
 20                 foreach (Stu stu in arr) // 받아온 값을 비교하여 리턴해준다.
 21                 {
 22                     if (stu.Name == n)
 23                     {
 24                         return stu.Num;
 25                     }                    
 26                 }
 27                 return 0;
 28             }
 29         }
 30     }
 31 }
 32 


'Programing > C#&.Net' 카테고리의 다른 글

직렬화(Serializable) 예제  (0) 2016.11.30
명시적 어셈블리 로딩  (0) 2016.11.30
Delegate(대리자) 프로그램  (0) 2016.11.30
리플렉션 활용  (0) 2016.11.30
리플렉션(reflection)  (0) 2016.11.30

+ Recent posts