Программирование
Веб программирование

Создание dll-,библиотеки на С# (Часть первая – создание класса)

 
 

Привет всем не хакерам (шучу, хакерам тоже привет, в надежде на их выздоровление).

Невозможно создать сколько-нибудь серьезное приложение под Windows без использования библиотек динамической компоновки dll (Dynamic Link Library).Dll – это наборы функций и данных, собранные в отдельную библиотеку. Во время выполнения приложения и обращения к библиотечным функциям dll-библиотеки, последняя загружается в память. Потом приложение как-то использует функции и данные библиотеки, и когда они больше не нужны - выгружает библиотеку. В этом заключается ее динамичность, это позволяет экономить память компьютера.

Один раз созданную библиотеку можно подключать к разным приложениям.

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

На этом уроке мы создадим класс, который на следующем уроке перекомпилируем в dll.

Задача. Создать класс, который имел в своем составе две функции: вычисление периметра треугольника, вычисления площади треугольника.

  1. Возьмем проект, созданный в уроке 29. Поместим новый класс в отдельный файл, для этого выбираем в верхнем меню Проект-->Добавить новый элемент-->Файл с текстом программы-->Добавить. Если все прошло успешно, то в Обозревателе решений у вас появится файл CodeFile1.cs. В нем мы будем создавать наш класс. Чтобы придать имени этого файла какой-то смысл, переименуем его в Triangle.cs. Для этого щелкнем правой кнопкой мышки на этом файле и выберем «Переименоват»ь. После переименования еще раз щелкнем на файле правой кнопкой мышки и выберем «Перейти к коду». Откроется окно файла, которое пока пустое. Теперь ручками введем туда код:

using System;

namespace Triangle
{

    public class Triangle
    {
        //Вычисление периметра
        public static double Perim(float[] x1, float[] x2)
        {
            return Leng(x1, x2, 0, 1) + Leng(x1, x2, 1, 2) + Leng(x1,x2,0,2);
        }

        //Вычисление площади по формуле Герона           
        public static double Area(float[] x1, float[] x2)
        {
            double p,a,b,c;
            p = Perim(x1,  x2);
            a = Leng(x1, x2, 0, 1);
            b = Leng(x1, x2, 1, 2);
            c = Leng(x1, x2, 0, 2);

            return Math.Sqrt(p*(p-a)*(p-b)*(p-c));
        }
//Вычисление длины отрезка public static double Leng(float[] x1, float[] x2, int i1, int i2) { return Math.Sqrt((x1[i1] - x1[i2]) * (x1[i1]
- x1[i2]) + (x2[i1] - x2[i2]) * (x2[i1] - x2[i2])); } } }

Этот код представляет собой новый класс Triangle о чем свидетельствует строка кода public class Triangle.

Для нашего вновь создаваемого класса мы создали так же отдельное пространство имен namespace Triangle. Пространство имен позволяет разграничить или упорядочить наш класс от других классов и функций. В нашем   классе три функции Leng, Area и Perim. В этих функциях параметры:

 float[] x1, float[] x2 – массивы типа float. x1 – массив Х-координат вершин треугольника, x2 – массив Y-координат вершин треугольника.

 int i1, int i2 – индексы точек в массивах координат.

Функция Leng вычисляет расстояние между двумя точками.

Функция Area вычисляет площадь треугольника.

Функция Perim вычисляет периметр треугольника.

 

Для проверки работы нашего класса Triangle в проекте урока 29 немного изменим функцию button1_Click, а именно вставим в нее две строчки:

 

    MessageBox.Show("Периметр = " + Convert.ToString(Triangle.Triangle.Perim(x,y)));

    MessageBox.Show("Площадь = " + Convert.ToString(Triangle.Triangle.Area(x, y)));

Немного поясню запись Triangle.Triangle.Perim(x,y). Первая часть Triangle.- задает пространство имен нашего класса. В принципе в обозначенном пространстве имен могут быть расположены и другие классы. Вторая часть Triangle. – задает имя класса. Третья часть .Perim(x,y) – задает непосредственно функцию класса, в данном случае функцию вычисления периметра Perim.

 

После всех изменений проекта урока 29, запускайте проект на выполнение и жмите кнопку «Построить».

В следующем уроке мы на основе класса Triangle создадим библиотеку dll.


Есть вопросы? Спроси на нашем форуме!!
Нет комментариев

Оставлять комментарии можно только зарегистрированным




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