Часть II. Объектно-ориентированное программирование
* To change this template use Tools | Options | Coding |
* Edit Standard Headers. */
using System;
// Эти модули находятся в сборках и подключаются
// по ссылке из меню Project
// Можно использовать настоящие имена сборок,
// если они не длинные:
// using app39_namespace.pbi.MyModul;
// using app40_namespace_2.pbi.MyModul2;
// Использование псевдонима вместо длинного имени
using MyModul = app39_namespace.pbi.MyModul;
using MyModul2 = app40_namespace_2.pbi.MyModul2;
namespace app41_namespace_main
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Обработка модулей, " +
"созданных разными источниками\n");
// app39_namespace.pbi.MyModul.A a = new
app39_namespace.pbi.MyModul.A();
MyModul.A a = new MyModul.A();
a.A_a=5;
// app40_namespace_2.pbi.MyModul2.B b =
new app40_namespace_2.pbi.MyModul2.B();
MyModul2.B b =
new app40_namespace_2.pbi.MyModul2.B();
b.B_b=6;
Console.Write("Работа с классами из разных +
"пространств имен\n");
Console.Write("Поле А_а = {0}, поле B_b = {1}\n",
a.A_a, b.B_b);
Глава 11. Сборки, манифесты, пространства имен…
221
Console.Write("Press any key to continue...");
Console.ReadKey(true);
}
}
}
а
б
в
Рис. 11.4.
Использование пространств имен из различных сборок:
а
,
б
— последовательность подключения пространств имен;
в
— результат работы
основного приложения с использованием пространств имен из разных сборок
222
Часть II. Объектно-ориентированное программирование
Теперь понятно, почему шаблон приложения оформляется как
namespace
<
имя_приложения
>
: после компиляции приложение приобретает формат
сборки. Если в нем имеются некоторые классы, функциональность
которых полезна для других приложений, то такую сборку можно под-
ключить к своей программе по ссылке и доставать из нее нужную функ-
циональность находящихся в ней классов.
ГЛ А В А
12
Коллекции. Обобщения
Коллекции
Для работы с группой однотипных элементов в C# использовался тип
данных, называемый массивом. Эта удобная форма обработки групп
однотипных данных имеет один существенный недостаток — массив по
своему размеру является статическим: сколько элементов в нем опреде-
лено, со столькими он и работает. То есть не может вести себя динами-
чески: при необходимости, расширяться или сужаться. Если вы хотите,
чтобы ваш массив был большего, чем объявлено, размера, надо объ-
являть новый массив. Существует класс
System.Array
, с помощью эк-
земпляров которого можно получать различные массивы. Класс
System.Array
— один из примеров класса коллекций.
Коллекция
— это
систематизированное собрание неких объектов, объединенных по неко-
торому принципу. Классы C#-коллекций применяются для обслужива-
ния списков объектов и дают значительно больше функциональных
возможностей, чем простой массив. Большая часть этих возможностей
реализуется интерфейсами из пространства имен
System.Collections
.
Основные функциональные возможности из этого пространства имен
предоставляют следующие интерфейсы:
IEnumerable
— предоставляет возможность организовать работу с эле-
ментами коллекции в цикле;
ICollection
— дает возможность узнать количество элементов кол-
лекции и копировать элементы в простой массив;
IList
— предоставляет возможность сформировать список элемен-
тов для коллекции и обеспечивает возможность доступа к этим эле-
ментам. Работает с индексом элемента;
224
Do'stlaringiz bilan baham: |