ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 06.12.2023
Просмотров: 76
Скачиваний: 1
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
| | | ||||||
| | Министерство науки и высшего образования Российской Федерации | ||||||
| | Федеральное государственное бюджетное образовательное учреждение высшего образования «МИРЭА – Российский технологический университет» РТУ МИРЭА | ||||||
| Институт | ИКБ | | |||||
| | | | |||||
| Специальность (направление): | 09.03.02 Информационные системы и технологии | | |||||
| | | | |||||
| Кафедра: | КБ-9«Предметно-ориентированные информационные системы» | | |||||
| | | | |||||
| Дисциплина: | «Технологии программирования» | | |||||
| Виртуальные методы и свойства |
| |
| Студент: | | | 30.03.2023 | | Сагдиева В.Б | |||||
| | подпись | | дата | | инициалы и фамилия | |||||
| Группа: | БСБО-10-22 | | Шифр: | 22Б0743 |
| Преподаватель: | | | 30.03.2023 | | к.т.н., доц. ИльиченковаЗ.В. |
| | подпись | | дата | | инициалы и фамилия |
VisualStudioНередко различные классы и структуры оформляются в виде отдельных библиотек, которые компилируются в файлы dll и затем могут подключаться в другие проекты. Благодаря этому мы можем определить один и тот же функционал в виде библиотеки классов и подключать в различные проекты или передавать на использование другим разработчикам.Создадим и подключим библиотеку классов.Возьмем имеющийся проект консольного приложения C#, например, созданный в прошлых темах. В структуре проекта нажмем правой кнопкой на название решения и далее в появившемся контекстном меню выберем Add -> New Project... (Добавить новый проект):Далее в списке шаблонов проекта найдем пункт Class Library:Затем дадим новому проекту какое-нибудь название, например, MyLib:После создания этого проекта в решение будет добавлен новый проект, в моем случае с названием MyLib: По умолчанию новый проект имеет один пустой класс Class1 в файле Class1.cs. Мы можем этот файл удалить или переименовать, как нам больше нравится.Например, переименуем файл Class1.cs в Person.cs, а класс Class1 в Person. Определим в классе Person простейший код:namespace MyLib{public class Person{string name;public Person(string name) {this.name = name;}public void Print() => Console.WriteLine($"Name: {name}");}}Теперь скомпилируем библиотеку классов. Для этого нажмем правой кнопкой на проект библиотеки классов и в контекстном меню выберем пункт Rebuild:После компиляции библиотеки классов в папке проекта в каталоге bin/Debug/net6.0 мы сможем найти скомпилированный файл dll (MyLib.dll). Подключим его в основной проект. Для этого в основном проекте нажмем правой кнопкой на узел Dependencies и в контекстном меню выберем пункт
Add Project Reference...:Далее нам откроется окно для добавления библиотек. В этом окне выберем пункт Solution,который позволяет увидеть все библиотеки классов из проектов текущего решения, поставим отметку рядом с нашей библиотекой и нажмем на кнопку OK:Если наша библиотека вдруг представляет файл dll, который не связан ни с каким проектом в нашем решении, то с помощью кнопки Browse мы можем найти местоположение файла dll и также его подключить.После успешного подключения библиотеки в главном проекте изменим файл Program.cs, чтобы он использовал класс Person из библиотеки классов:using MyLib; // подключение пространства имен из библиотеки классовPerson tom = new("Tom");tom.Print(); // Name: TomКод программы и скриншот ее работыБиблиотека:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace ClassLibrary1{public class money{private int dox;private int rasx;public virtual int Dox{get{return dox;}set{if (value < 0) dox = 0;dox = value;}}public int Rasx{get{return rasx;}set{if (value < 0) rasx = 0;rasx = value;}}public money() { Dox = 40000; Rasx = 48250; }public money(int d) { Dox = d; Rasx = 58100; }public money(int dox, int rasx){Dox = dox;Rasx = rasx;}public virtual string print(){return ($"{dox} сумма дохода, {rasx} сумма расходов");}public void print1(){Console.WriteLine("Вы залезли в долги, Данной суммы не хватило на месяц: ");}public void print2(){Console.WriteLine("Оставшаяся сумма после всех трат за месяц: ");}public int remains(int dox, int rasx){if (dox < rasx){print1();return dox;}else{print2();return (dox - rasx);}}public double remains(double dox, double rasx){if (dox < rasx){print1();return dox;}else{print2();return (dox - rasx);}}public static money operator +(money a, money b){return new money(a.Dox + b.Dox, a.Rasx + b.Rasx);}public static bool operator ==(money a, money b){return (a.Dox == b.Dox && a.Rasx == b.Rasx);}public static bool operator !=(money a, money b){return (a.Dox != b.Dox && a.Rasx != b.Rasx);}}public class money2 : money{public int Reg { get; set; }public override int Dox{get{return base.Dox;}set{if (value < 0) base.Dox = 0;
base.Dox = value;}}public money2(int dox, int rasx, int r) : base(dox, rasx){Reg = r;}}public class dostatoc : money{public int Pem { get; set; }public dostatoc(int dox, int rasx, int p) : base(dox, rasx){Pem = p;}public override string print(){string result = base.print() + $"{Pem} премия в этом месяце";return result;}}public abstract class Property{private string Name { get; set; }public void Prorerty(string name){Name = name;}public abstract void Move();}public class Apartment : Property{public Apartment(string name) : base() { }public override void Move(){Console.WriteLine("Квартира находится в собственности, необходимо оплачивать каждый месяц только комунальные услуги");}}}Подключение библиотеки:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using ClassLibrary1;namespace ConsoleApp1{public class programm{static void Main(string[] args){money a = new money();money a1 = new money(60000);money a2 = new money(40000, 37590);a.print();Console.WriteLine($"{a.remains(40000, 48250)}");a1.print();Console.WriteLine($"{a1.remains(60000, 58100)}");a2.print();Console.WriteLine($"{a2.remains(40000.50, 37590.60)}");money2 b = new money2(60000, 50000, 1500);b.print();dostatoc c = new dostatoc(40000, 38950, 2000);c.print();Property apartment = new Apartment("квартира");apartment.Move();Console.ReadKey();}}}Вывод В ходе практической работы я изучила, что такое переопределение свойств, как создать библиотеку классов в Visual Studio, а также научилась применять все на практике.