인덱서 사용예제
해당 클래스의 인덱서를 정의하여 사용하였다 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 |