## Предметная область # "University" # ૮₍ • ᴥ • ₎ა # ૮₍ • ᴥ • ₎ა # ૮₍ • ᴥ • ₎ა ### OOOPS.. ## Создание ``` namespace ClassLibrary1; public class Student { public string name { get; set; } public int age { get; set; } } ``` ## Подключение ``` using ClassLibrary1; var gosha = new Student { name = "Гоша", age = 18 }; Console.WriteLine(gosha.name); ``` ``` Гоша ``` ## Динамическая загрузка сборок и позднее связывание ### исследуем сборку на наличие в ней различных типов: ``` using System.Reflection; var asm = Assembly.LoadFrom( "ClassLibrary1.dll"); Console.WriteLine(asm.FullName); var types = asm.GetTypes(); foreach(Type t in types) { Console.WriteLine(t.Name); } ``` ``` ClassLibrary1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null Student ``` ## Исследование типов ### Получение типа через typeof: ``` Type myType = typeof(Student); Console.WriteLine(myType.ToString()); Console.ReadLine(); public class Student { public string Name { get; set; } public int Age { get; set; } public Student(string n, int a) { Name = n; Age = a; } public void Display() { Console.WriteLine($"Имя: {Name} Возраст: {Age}"); } public int registration (int today, int tomorrow) { return today * tomorrow; } } ``` ``` Гоша, 18 лет ``` ## Позднее связывание ``` using System; class Program { static void Main(string[] args) { University university = new University(); university.InvestInEducation(5, 1000000, 4); // Инвестиция в образование студентов на 4 года с 5% дохода в год Console.WriteLine($"Итоговый капитал университета: {university.Capital}"); Console.ReadLine(); } } class University { public double Capital { get; set; } public void InvestInEducation(int percent, double initialCapital, int years) { Capital = initialCapital; for (int i = 0; i < years; i++) { Capital += Capital / 100 * percent; } } } ``` ``` Итоговый капитал университета: 1215506,25 ```