Читаем C# 4.0 полное руководство - 2011 полностью

Метод расширения является статическим и поэтому должен быть включен в состав статического, необобщенного класса. Тип первого параметра метода расширения определяет тип объектов, для которых этот метод может быть вызван. Кроме того, первый параметр может быть указан с модификаторомthis.Объект, для которого вызывается метод расширения, автоматически передается его первому параметру. Он не передается явным образом в списке аргументов. Следует, однако, иметь в виду, что метод расширения может по-прежнему вызываться для объекта аналогично методу экземпляра, несмотря на то, что он объявляется как статический.

Ниже приведена общая форма метода расширения.

staticвозращаемый_тип имя (this тип_вызывающего_объекта ob, список_параметров)

Очевидно, чтосписок_параметровокажется пустым в отсутствие аргументов, за исключением аргумента, неявно передаваемого вызывающим объектом оЬ. Не следует, однако, забывать, что первым параметром метода расширения является автоматически передаваемый объект, для которого вызывается этот метод. Как правило, метод расширения становится открытым членом своего класса.

В приведенном ниже примере программы создаются три простых метода расширения.

// Создать и использовать ряд методов расширения, using System;

using System.Globalization; static class MyExtMeths {

// Возвратить обратную величину числового значения типа double, public static double Reciprocal(this double v) { return 1.0 / v;

}

// Изменить на обратный регистр букв в символьной // строке и возвратить результат, public static string RevCase(this string str) { string temp =

foreach(char ch in str) {

if(Char.IsLower(ch)) temp += Char.ToUpper (ch, Culturelnfo.

CurrentCulture);

else temp += Char.ToLower(ch, Culturelnfo.CurrentCulture);

}

return temp;

}

// Возвратить абсолютное значение выражения n / d. public static double AbsDivideBy(this double n, double d) { return Math.Abs(n / d);

}

}

class ExtDemo {

static void Main {

double val = 8.0;

string str = "Alpha Beta Gamma";

// Вызвать метод расширения Reciprocal..

Console.WriteLine("Обратная величина {0} равна {1}", val, val.Reciprocal);

// Вызвать метод расширения RevCaseO .

Console.WriteLine(str + " после смены регистра: " + str.RevCase );

// Использовать метод расширения AbsDivideBy .

Console.WriteLine("Результат вызова метода val.AbsDivideBy(-2) : " + val.AbsDivideBy(-2));

}

}

Обратная величина 8 равна 0.125

Alpha Beta Gamma после смены регистра: aLPHA ЬЕТА дАММА Результат вызова метода val.AbsDivideBy(-2): 4

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных