Приведення типів в Visual C # (Sharp)

Раніше в розділі було розглянуто декілька прикладів приведення типів У С # є два способи виконання приведення типів:

• примусове приведення типів, яке можна застосовувати із звичайними тами

• приведення типів, що подає запит, чи можливо здійснення даної опаціі

Розглянемо наступну ієрархію:

class Base {

public void Method() { ConsoleWriteLine(&quotBaseMethod&quot)

}

}

class Derived : Base { public new void Method) {

ConsoleWriteLine(&quotDerivedMethod&quot)

}

}

Наступним кроком буде створення екземпляра типу Derived і приведення його типу до базового типу:

Derived derivedCls = new DerivedO Base baseCls = derivedCls

При приведенні похідного типу до типу базового класу явне приведення нбязательно, і можна припускати, що воно виконується неявно

При приведенні примірника базового класу до примірника похідного класу потрібно примусове приведення Далі представлений вихідний код для прудітельного приведення типу (передбачається ієрархія успадкування з предущего приведення)

DerivedClass backToDerived = (DerivedClass)baseCls

Примусове приведення знаходиться з правого боку знака рівності, при цьому необхідний тип укладений в дужки Приведення є примусовим, т к перетворення до зазначеного типу буде виконано незалежно від того, явлтся чи це можливим чи ні Якщо перетворення неможливо, то видається ілюченіе приведення типу

Іншим способом приведення типів є приведення за запитом, як показано в наступному коді (тут також передбачається ієрархія спадкоємства, ісполуемая в даному розділі):

DerivedClass backToDerived = baseCls as DerivedClass

Приведення виконується за допомогою ключового слова as і вказівки бажаного цільового типу У даному випадку буде виконана спроба приведення до вказівки типу У разі успішного приведення екземпляр типу присвоюється перемеой backToDerived У разі ж неуспішного завершення спроби приведення пеменной backToDerived присвоюється нульове значення При даному способі приведення типу, неуспішна спроба приведення не викликає виключення Цей спосіб приведення типів застосуємо тільки для посилальних типів

У цьому розділі ми розглянули інтерфейси та їх реалізації З представленого матеріалу рекомендується запамятати такі ключові аспекти

• Механізм інтерфейсів відрізняється від механізму наслідування Це два різних рішення, хоча в механізмі інтерфейсів і застосовується спадкування

• На абстрактному рівні інтерфейси представляють ідеї про бажаної роботи проженія

• Виражені в інтерфейсах ідеї повинні бути загальними і застосовні до множесенним реалізаціям додатки для даної області

• Ідеї ​​реалізуються за допомогою інтерфейсів С #, які в свою чергу реалії з допомогою класів або структур Але слід звернути увагу на те, що інтерфейси є посилальними типами Інтерфейси і реалізації яяются компонентами

• Для створення екземпляра реалізації та повернення обєкта інтерфейсу примяти фабрики Використання фабрики дозволяє користувачеві інтерфейсу не знати, для якої реалізації необхідно створювати екземпляр

• Інтерфейси можна розглядати як атрибути, спрямовані на специфічну характеристику реалізації Але як було показано в попередньому розділі, інтерфейси не пропонують внутрішнє стан або внутрішній механізм реалізацій

• Компоненти являють собою базовий спосіб розробки коду Вони повинні бути вашим основним способом розробки коду До кінця книги ми будемо іользовать інтерфейси при будь-якому зручному випадку Намагайтеся вловити і пять ідею в основі інтерфейсу

Джерело: Гросс К С # 2008: Пер з англ – СПб: БХВ-Петербург, 2009 – 576 е: ил – (Самовчитель)

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*