Чи може індексатор бути перевантажений у C#?

Ключове слово this визначає індексатор. Ключове слово value є аргументом для методу доступу set. Індексатори не вимагають цілого значення індексу; від вас залежить, як визначити конкретний механізм пошуку. Індексатори можуть бути перевантажені.23 серпня 2024 р

Методи перевантаження операторів у C#

Ім'я оператораПриклади операторівЗдатність до перевантаження
Умовні логічні оператори&&, ||Їх не можна перевантажувати безпосередньо.
Оператори порівняння==, !=, =Вони можуть бути перевантажені.
Оператори присвоєння+=, -+, *=, /=, %=, =Не можна перевантажувати.

Якщо ви оголошуєте більше одного індексатора в одному класі, вони повинні мати різні підписи. Індексатор не класифікується як змінна; отже, значення індексатора не можна передати за посиланням (як параметр ref або out), якщо його значення не є посиланням (тобто воно повертає за посиланням).

Виявилося, що Статичні індексатори недоступні в C#. Тому в якості компромісу ми вирішили реалізувати Singleton, який відкриває Indexer. Якщо вам потрібно створити статичний індексатор і ви з’ясуєте, що ви не можете в C#, я сподіваюся, що це знайде свій шлях до вас.

Ви можете перевантажувати методи списками аргументів змінної довжини за допомогою ключового слова params, що дозволяє передавати змінну кількість аргументів одного типу даних. Ви можете викликати метод Sum з будь-якою кількістю цілих чисел.

Оператор селектора члена класу або Dot(.) оператор не можна перевантажувати, і це викличе помилку, як видно у виводі. Перевантаження оператора Dot(.) призведе до конфлікту значення, оскільки оператор може використовуватися для перевантаження об’єкта або для посилання на об’єкт класу.