Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции все вместе / Lektsia_1_Chast_3_Vvedenie.doc
Скачиваний:
6
Добавлен:
20.04.2015
Размер:
366.59 Кб
Скачать

Раздел 2. Часть 2.

Использование библиотеки классов .NET Framework (Visual C#).

Array – класс

Предоставляет методы для создания, изменения, поиска и сортировки массивов, то есть выступает в роли базового класса для всех массивов в среде CLR. Явно наследовать класс Array может только система и компиляторы. Пространство имен:  System.

public abstract class Array Member of System

Модификатор abstract может использоваться с классами, методами, свойствами, индексаторами и событиями. Модификатор abstract в объявлении класса указывает, что класс предназначен только для использования в качестве базового класса для других классов. Создавать экземпляры абстрактного класса нельзя. Конструктора нет. Создавать переменные типа Array можно. Метод CreateInstance, используется вместо открытых конструкторов. Пример

static void Main(string[] args)

{

Array myArr = Array.CreateInstance(typeof(Int32), 3);

foreach (int i in myArr)

{

Console.Write("\t{0}", i);

}

Console.WriteLine();

myArr.SetValue(1, 1);

foreach (int i in myArr)

{

Console.Write("\t{0}", i);

}

}

Следующий код приведет к ошибке

Array myArr = Array.CreateInstance(typeof(Int32), 3);

myArr[1] = 8;

foreach (int i in myArr)

{

Console.Write("\t{0}", i);

}

Ошибка 1 Невозможно применить индексирование через [] к выражению типа "System.Array"

Следующий код не приведет к ошибке

int[] myArr = new int[3] { 11, 12, 13 };

myArr[1]=99;

foreach (int i in myArr)

{

Console.Write("\t{0}", i);

}

Console.WriteLine();

Массивы являются ссылочными типами, производными от абстрактного базового типа Array.

static void Main(string[] args)

{

int[] myArr = new int[3] {11,12,13 };

myArr.SetValue(88, 1);

foreach (int i in myArr)

{

Console.Write("\t{0}", i);

}

Console.WriteLine();

}

В C# во всех массивах можно использовать итерацию foreach.

Неабстрактный тип, являющийся производным от абстрактного, содержит фактические реализации всех наследуемых абстрактных методов и методов доступа.

ArrayList - класс

Интерфейс IList представляет неуниверсальную коллекцию объектов с индивидуальным доступом, осуществляемым при помощи индекса.

Пространство имен:  System.Collections Список IList с переменным размером позволяет выполнять добавление, удаление и изменение элементов. Доступ к элементам этой коллекции осуществляется с помощью целочисленного индекса. Индексы в этой коллекции начинаются с нуля. Конструктор есть.

Пример создания и инициализации

using System;

using System.Collections;

namespace ConsoleApplication2

{

class Program

{

static void Main(string[] args)

{

ArrayList myAL = new ArrayList();

myAL.Add("Hello");

myAL.Add("World");

myAL.Add("!");

Console.WriteLine(" Count: {0}", myAL.Count);

Console.WriteLine(" Capacity: {0}", myAL.Capacity);

myAL[1] = "??????????";

foreach (Object obj in myAL)

Console.Write(" {0}", obj);

Console.WriteLine();

}

}

}

Пример

using System;

using System.Collections;

namespace ConsoleApplication2

{

class Class1

{

int s;

int a;

public Class1(int s, int a)

{

this.s = s;

this.a = a;

}

public override string ToString()

{

return String.Format("{0} {1}", s, a);

}

}

class Program

{

static void Main(string[] args)

{

Class1[] g = new Class1[3];

g[0] = new Class1(1, 4);

g[1] = new Class1(2, 8);

g[2] = new Class1(5, 4);

foreach (Class1 i in g)

Console.WriteLine(i);

ArrayList a = new ArrayList();

a.Add(new Class1(2, 4));

a.Add(new Class1(4, 17));

a.Add(new Class1(3, 8));

for (int i = 0; i < a.Count; i++)

Console.WriteLine("{0:d}", a[i]);

}

}

}

Пример. Используя метод Array.Sort отсортировать массив. Настроить порядок сортировки массива.

using System;

using System.Collections;

namespace ConsoleApplication5

{

class Program : IComparer

{

int IComparer.Compare(Object x, Object y)

{

int x1 = (int)x;

int y1 = (int)y;

return y1.CompareTo(x1);

}

static void Main(string[] args)

{

Program g = new Program();

int[] a = new int[7] { 2, 5, 1, 7, 9, 4, 3 };

IComparer mm = new Program();

Array.Sort(a, mm);

for (int i = 0; i < a.Length; i++)

Console.WriteLine("{0:d}", a[i]);

}

}

}

Соседние файлы в папке лекции все вместе