Шаг 257.
Язык программирования C#. Начала.
Обобщенные типы. Обобщенные методы (окончание)

    На этом шаге мы рассмотрим использование нестатических обобщенных методов.

    Обобщенный метод может быть и нестатическим: такой метод описывается в обычном (не обобщенном) классе. В примере ниже приведен пример подобной ситуации.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace pr257_1
{
    // Класс с обобщенным методом: 
    class MyClass {
        // Закрытое текстовое поле: 
        public string text;
        // Конструктор: 
        public MyClass(string t) { 
            text = t;
        }
        // Обобщенный метод: 
        public void show<X>(X arg) {
            Console.WriteLine(text + ": " + arg);
        }
    }

    // Главный класс:
    class Program
    {
        static void Main()
        {
            // Создание объектов:
            MyClass A = new MyClass("Alpha");
            MyClass B = new MyClass("Bravo");
            // Вызов обобщенного метода:
            A.show(100);
            B.show(200);
            A.show('A');
            B.show<char>('B');
            B.show<int>('B');
            // Задержка:
            Console.ReadLine();
        }
    }
}
Архив проекта можно взять здесь.

    Результат выполнения программы такой:


Рис.1. Результат работы приложения

    В программе описывается класс MyClass с текстовым полем. В классе есть обобщенный метод show(). Метод получает аргумент обобщенного типа и отображает в консольном окне значение этого аргумента. Вместе со значением аргумента отображается значение текстового поля объекта. В главном методе создается два объекта класса MyClass, и из этих объектов вызывается метод show(). Результаты вызовов вполне предсказуемы.

    На следующем шаге мы рассмотрим обобщенные классы.




Предыдущий шаг Содержание Следующий шаг