> 백엔드 개발 > C#.Net 튜토리얼 > C#에서 연산자를 오버로드하는 방법은 무엇입니까?

C#에서 연산자를 오버로드하는 방법은 무엇입니까?

王林
풀어 주다: 2023-09-04 09:13:02
앞으로
1007명이 탐색했습니다.

如何重载 C# 中的运算符?

[] 연산자를 인덱서라고 합니다.

인덱서는 배열과 같은 개체의 인덱싱을 허용합니다. 클래스에 대한 인덱서를 정의하면 클래스는 가상 배열처럼 동작합니다. 그런 다음 배열 액세스 연산자([ ])를 사용하여 해당 클래스의 인스턴스에 액세스할 수 있습니다.

인덱서는 오버로드될 수 있습니다. 인덱서는 여러 매개 변수를 선언할 수도 있으며 각 매개 변수는 서로 다른 형식일 수 있습니다. 인덱스가 반드시 정수일 필요는 없습니다.

예제 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;
      }
   }
}
로그인 후 복사

Output

A
B
C
D
E
F
G
H
I
J
로그인 후 복사

예제 2

Rewrite []

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();
      }
   }
}
로그인 후 복사

Output

A
B
C
C
로그인 후 복사

위 내용은 C#에서 연산자를 오버로드하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿