Студопедия — Task 1 – Declaring Extension Methods
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Task 1 – Declaring Extension Methods






This task begins by extending a class using C# 2.0 and then utilizes the C# 3.0 Extension Methods feature.

 

1. Add a new static class, Extensions, to the NewLanguageFeatures namespace:

 

namespace NewLanguageFeatures

{

public static class Extensions

{

}

 

public class Customer

 

2. In this new class add a method, Compare that given two customers checks to see if all the properties of each are the same, and if so returns true.

public static class Extensions

{

public static bool Compare(Customer customer1, Customer customer2)

{

if (customer1.CustomerID == customer2.CustomerID &&

customer1.Name == customer2.Name &&

customer1.City == customer2.City)

{

return true;

}

 

return false;

}

}

 

3. Rewrite Main to compare a new Customer with all the others in the list to see if it is present already:

 

static void Main(string[] args)

{

var customers = CreateCustomers();

 

var newCustomer = new Customer(10)

{

Name = "Diego Roel",

City = "Madrid"

};

 

foreach (var c in customers)

{

if (Extensions.Compare(newCustomer, c))

{

Console.WriteLine("The new customer was already in the list");

return;

}

}

 

Console.WriteLine("The new customer was not in the list");

}

 

The previous code demonstrates how you might extend a type with new functionality in C# 2.0.

 

4. Press Ctrl+F5 to build and run the application, which displays “The new customer was not in the list”. Press any key to terminate the application.

With C# 3.0, you can now define an extension method that can be invoked using instance method syntax. An extension method is declared by specifying the keyword this as a modifier on the first parameter of the method.

5. Add the modifier this to the first parameter accepted by Compare:

public static class Extensions

{

public static bool Compare(this Customer customer1, Customer customer2)

{

 

6. In the Main method, change the invocation of Compare to use the instance method syntax, making Compare appear as a method of the Order class:

foreach (var c in customers)

{

 

if (newCustomer.Compare(c))

{

Console.WriteLine("The new customer was already in the list");

return;

}

 

7. Press Ctrl+F5 to build and run the application again and verify that it displays the same output, then press any key to close the console window and terminate the application.

Extension methods are only available if declared in a static class and are scoped by the associated namespace. They then appear as additional methods on the types that are given by their first parameter.







Дата добавления: 2015-09-07; просмотров: 419. Нарушение авторских прав; Мы поможем в написании вашей работы!



Аальтернативная стоимость. Кривая производственных возможностей В экономике Буридании есть 100 ед. труда с производительностью 4 м ткани или 2 кг мяса...

Вычисление основной дактилоскопической формулы Вычислением основной дактоформулы обычно занимается следователь. Для этого все десять пальцев разбиваются на пять пар...

Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Педагогическая структура процесса социализации Характеризуя социализацию как педагогический процессе, следует рассмотреть ее основные компоненты: цель, содержание, средства, функции субъекта и объекта...

Типовые ситуационные задачи. Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической   Задача 1. Больной К., 38 лет, шахтер по профессии, во время планового медицинского осмотра предъявил жалобы на появление одышки при значительной физической нагрузке. Из медицинской книжки установлено, что он страдает врожденным пороком сердца....

Типовые ситуационные задачи. Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт Задача 1.У больного А., 20 лет, с детства отмечается повышенное АД, уровень которого в настоящее время составляет 180-200/110-120 мм рт. ст. Влияние психоэмоциональных факторов отсутствует. Колебаний АД практически нет. Головной боли нет. Нормализовать...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Тема 5. Организационная структура управления гостиницей 1. Виды организационно – управленческих структур. 2. Организационно – управленческая структура современного ТГК...

Studopedia.info - Студопедия - 2014-2024 год . (0.01 сек.) русская версия | украинская версия