Лекция 15. Обобщения Пример Обобщенный класс


Пример 3. Простой пример, демонстрирующий механизм наложения



бет2/4
Дата19.01.2023
өлшемі25.18 Kb.
#417427
түріЛекция
1   2   3   4
Байланысты:
Лекция 15. мысалдар
анатомия РК, Лекция 2 (2)
Пример 3. Простой пример, демонстрирующий механизм наложения
ограничения на базовый класс.
using System;
class A
{
public void Hello()
{
Console.WriteLine("Hello");
}
}
// Класс В наследует класс А.
class B : A { }
// Класс С не наследует класс А.
class С { }
// В силу ограничения на базовый класс во всех аргументах типа,
// передаваемых классу Test, должен присутствовать базовый класс А.
class Test where T : A
{
T obj;
public Test(T о)
{
obj = о;
}
public void SayHello()
{
// Метод Hello() вызывается, поскольку он объявлен в базовом классе А.
obj.Hello();
}
}
class BaseClassConstraintDemo
{
static void Main()
{
A a = new A();
B b = new B();
С с = new С();
// Следующий код вполне допустим, поскольку класс А указан как базовый.
Test t1 = new Test(a);
t1.SayHello();
// Следующий код вполне допустим, поскольку класс В наследует от класса А.
Test t2 = new Test(b);
t2.SayHello();
// Следующий код недопустим, поскольку класс С не наследует от класса А.
// Test t3 = new Test(c); // Ошибка!
// t3.SayHello(); // Ошибка!
}
}

Пример 4. Продемонстрировать применение обобщенного метода.

using System;


// Класс обработки массивов. Этот класс не является обобщенным.
class ArrayUtils
{
//
Копировать массив, вводя по ходу дела новый элемент.
// Этот метод является обобщенным.
public static bool CopyInsert(T e, uint idx, T[] src, T[] target)
{
// Проверить, насколько велик массив.
if (target.Length < src.Length + 1)
return false;
// Скопировать содержимое массива src в целевой массив,
// попутно введя значение е по индексу idx.
for (int i = 0, j = 0; i < src.Length; i++, j++)
{
if (i == idx)
{
target[j] = e;
j++;
}
target[j] = src[i];
}
return true;
}
}
class GenMethDemo
{
static void Main()
{
int[] nums = { 1, 2, 3 };
int[] nums2 = new int[4];
// Вывести содержимое массива nums.
Console.Write("Содержимое массива nums: ");
foreach (int x in nums)
Console.Write(x + " ");
Console.WriteLine();
// Обработать массив типа int.
ArrayUtils.CopyInsert(99, 2, nums, nums2);
// Вывести содержимое массива nums2.
Console.Write("Содержимое массива nums2: ");
foreach (int x in nums2)
Console.Write(x + " ");
Console.WriteLine();
//А теперь обработать массив строк, используя метод copyInsert.
string[] strs = { "Обобщения", "весьма", "эффективны." };
string[] strs2 = new string[4];
// Вывести содержимое массива strs.
Console.Write("Содержимое массива strs: ");
foreach (string s in strs)
Console.Write(s + " ");
Console.WriteLine();
// Ввести элемент в массив строк.
ArrayUtils.CopyInsert("в С#", 1, strs, strs2);
// Вывести содержимое массива strs2.
Console.Write("Содержимое массива strs2: ");
foreach (string s in strs2)
Console.Write(s + " ");
Console.WriteLine();
// Этот вызов недопустим, поскольку первый аргумент
// относится к типу double, а третий и четвертый
// аргументы обозначают элементы массивов типа int.
// ArrayUtils.Copylnsert(0.01, 2, nums, nums2);
}
}



Достарыңызбен бөлісу:
1   2   3   4




©melimde.com 2023
әкімшілігінің қараңыз

    Басты бет
Сабақтың тақырыбы
бойынша жиынтық
жиынтық бағалау
Сабақ тақырыбы
бағдарламасына сәйкес
Сабақтың мақсаты
тоқсан бойынша
сәйкес оқыту
ғылым министрлігі
бағалауға арналған
Реферат тақырыбы
Сабақ жоспары
оқыту мақсаттары
жиынтық бағалауға
арналған тапсырмалар
білім беретін
бағалау тапсырмалары
Қазақстан тарихы
Қазақстан республикасы
мерзімді жоспар
жиынтық бағалаудың
тоқсанға арналған
жалпы білім
нтізбелік тақырыптық
республикасы білім
бекіту туралы
Зертханалық жұмыс
Жалпы ережелер
арналған жиынтық
болып табылады
Қазақстан республикасының
арналған әдістемелік
Мектепке дейінгі
Қысқа мерзімді
оқыту әдістемесі
Қазақ әдебиеті
рсетілетін қызмет
Инклюзивті білім
білім берудің
тақырыптық жоспар
бағалаудың тапсырмалары
атындағы жалпы
пайда болуы
пәнінен тоқсанға
туралы жалпы
әдістемелік ұсыныстар
коммуналдық мемлекеттік
қарым қатынас
қызмет стандарты
мемлекеттік мекемесі
Жұмыс бағдарламасы