ПредишенСледващото

В C #, като всеки език за програмиране, има готов набор от символи, които се използват за изпълнение на основни операции на вградените типове. Например, известно е, че операцията + може да се прилага два число, тяхната сума да се получи:

Това не е нищо ново, но мислили ли сте за това една и съща операция + може да се прилага по-голямата част на вградения C # типа данни? Да вземем например следния код:

В действителност, функционалността на операциите + еднозначно въз основа на представените типове данни (целочислени или линии в този случай). Когато операция + се прилага към цифровите видове, получаваме аритметична сума от операнди. Въпреки това, когато една и съща операция се прилага по отношение на тип низ от слепване струни.

C # език дава възможност да се изградят специални класове и структури, които също са уникални за да отговори на един и същ набор от основни символи (като операторът +). Имайте предвид, че всеки един вграден C # да претоварват операция е невъзможно. Таблицата по-долу описва възможността за претоварване на основните операции:

Претоварването на едноместно оператори

Едноместно оператори се предават по същия начин, както двоичен. Основната разлика е, разбира се, е, че те имат само един операнд. Нека да актуализирате предишния пример, добавяйки, че натоварването на оператори ++, -, -:

Ръчно C #, основи на натоварването на оператори

Изпълнение на операции с вградена C # типове данни

За всеки даден клас и операторът също е възможно метод оператор да претоварват себе си. Това, по-специално, не се изисква, за да се позволи използването на типа на класа, както и други видове данни, включително вградена инча Нека добавим следния задръстванията в предишния пример:

Ръчно C #, основи на натоварването на оператори

Като потвърждение на горния резултат, когато операторът + нанася два обекта MyArr клас, се добавят техните координати. И когато тя се прилага за вида на обекта и MyArr низ стойност низ се връща на текущите координати на обектите.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!