Анонімні методи в Visual C # (Sharp)

Починаючи з версії С # 20, використання делегатів можна зробити більш ефекти за допомогою анонімних методів У попередніх прикладах використання дегатов код для обчислення суми і максимального значення було визначено в явних методах, що містяться в типі При використанні анонімних методів код методу визначається у виклику методу

Підхід із застосуванням анонімних методів використовує той же итератор класу і делегат ProcessValue Різниця ж полягає в тому, яким чином використовуються ітератор і ProcessValue О Методи реалізації делегатів ProcessRunningTotal () і ProcessMaximumValue () більше не потрібні, а викликає код модифікується в такий спосіб:

List&ltint&gt 1st = new List&ltint&gt { 1, 2, 3, 4 } int runningTotal = 0

1stIterate{

delegate( int value)  { runningTotal += value

})

ConsoleWriteLine(&quotRunning total is (&quot + runningTotal + &quot)&quot)

int maxValue = intMinValue 1stIterate{

delegate(int value) {

if (value &gt maxValue) { maxValue = value

}

})

ConsoleWriteLine(&quotMaximum value is (&quot + maxValue + &quot)&quot)

Анонімні методи виділені жирним шрифтом Анонімний метод являє собою повне оголошення методу в іншому методі Сигнатурою методу є ідентифікатор delegate, за яким слідують параметри певного делегата Визначати повертається значення не потрібно, тому що воно мається на увазі в обвленіі делегата ProcessValue ()

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

Подивившись на першу частину коду, видленного жирним шрифтом, ми побачимо, що дана реалізація ідентична реалізації методу ProcessRunningTotalО Осягнути анонімним метод для обчислення поточної суми, код як б каже: Коли ви готові щось робити, ось код, який потрібно виконувати. Подивившись на реалацію обох анонімних методів, ми побачимо посилання на стан, який осягнути в контексті батьківського методу Великою перевагою анонімних модов є можливість поділу стану

Анонімні методи переважні формально оголошеним методам тому, що вони надають нам можливість написання компактного коду для вирішення проблеми без відмови від переносимості

Джерело: Гросс К С # 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>

*

*