Computer >> Máy Tính >  >> Lập trình >> C#

Làm cách nào để nạp chồng toán tử [] trong C #?

Toán tử [] được gọi là bộ lập chỉ mục.

Trình chỉ mục cho phép một đối tượng được lập chỉ mục, chẳng hạn như một mảng. Khi bạn định nghĩa một chỉ mục cho một lớp, lớp này hoạt động tương tự như một mảng ảo. Sau đó, bạn có thể truy cập phiên bản của lớp này bằng toán tử truy cập mảng ([]).

Các chỉ mục có thể bị quá tải. Các chỉ mục cũng có thể được khai báo với nhiều tham số và mỗi tham số có thể là một kiểu khác nhau. Không nhất thiết các chỉ mục phải là số nguyên.

Ví dụ 1

static void Main(string[] args){
   IndexerClass Team = new IndexerClass();
   Team[0] = "A";
   Team[1] = "B";
   Team[2] = "C";
   Team[3] = "D";
   Team[4] = "E";
   Team[5] = "F";
   Team[6] = "G";
   Team[7] = "H";
   Team[8] = "I";
   Team[9] = "J";
   for (int i = 0; i < 10; i++){
      Console.WriteLine(Team[i]);
   }
   Console.ReadLine();
}
class IndexerClass{
   private string[] names = new string[10];
   public string this[int i]{
      get{
         return names[i];
      } set {
         names[i] = value;
      }
   }
}

Đầu ra

A
B
C
D
E
F
G
H
I
J

Ví dụ 2

Ghi đè []

static class Program{
   static void Main(string[] args){
      IndexerClass Team = new IndexerClass();
      Team[0] = "A";
      Team[1] = "B";
      Team[2] = "C";
      for (int i = 0; i < 10; i++){
         Console.WriteLine(Team[i]);
      }
      System.Console.WriteLine(Team["C"]);
      Console.ReadLine();
   }
}
class IndexerClass{
   private string[] names = new string[10];
   public string this[int i]{
      get{
         return names[i];
      }
      set{
         names[i] = value;
      }
   }
   public string this[string i]{
      get{
         return names.Where(x => x == i).FirstOrDefault();
      }
   }
}

Đầu ra

A
B
C
C