static void Main(string[] args) { //Console.WriteLine("hello world"); /* * Завдання: * 1. Створіть застосунок та оголосіть в ньому структуру відповідно до свого варіанту. * Виконай наступні дії із структурою: * a. Оголосіть всі можливі конструктори. (+) * b. Продемонструйте роботу із всіма можливими конструкторами структури. (+) * c. Покажіть в коді неможливість використання структури в якості базової. (?) * d. Покажіть в коді неможливість наслідування структурою іншої структури або класу. (+) * e. Продемонструйте роботу методу Equals та поясніть отриманий результат. (+) * f. Продемонструйте роботу методу ToString. Модифікуйте цей метод. (+) * 2. Створіть застосунок та оголосіть в ньому клас відповідно до свого варіанту. Клас повинен містити: * a. Властивості. (+) * b. Автоматичні властивості. (+) * c. Індексатор. () * d. Властивість для статичного поля. (+) * 3. Додатково для поглибленого вивчення: переглянути, як виглядають властивості та * індексатори в коді MSIL. Продемонструвати код MSIL при захисті лабораторної роботи. () * * Варіанти структур та класів: * Варіант 9: * Об'єкти – меблі ( шафи, ліжка, дивани, столи) у магазині. Поля (атрибути): * • Назва * • Кількість * • Ціна */ FurnitureStruct table = new FurnitureStruct("Desk", 5, 200); FurnitureStruct sofa = new FurnitureStruct(table); table.Echo(); Console.WriteLine(""); sofa.Echo(); Console.WriteLine("Are these objects equal ? : {0}", Object.Equals(table, sofa)); Console.WriteLine("Execute ToString method with some created object : {0}", table.ToString()); FurnitureClass chair = new FurnitureClass("chair", 5, 250); Console.WriteLine("The price in dollars for chair is {0}", chair.PriceInDollars); chair.ChangeTitle = "GamingChair"; Console.WriteLine("Changed title for chair is {0}", chair.ChangeTitle); Console.WriteLine("I changed something {0}", FurnitureClass.ChangeSmth = "IDK"); //write to x, if %2 == 0, else - to y //chair[4] = 25; //Console.WriteLine(chair[4]); Console.ReadKey(); }
static void Main(string[] args) { //Console.WriteLine("BGDN"); //Завдання: //На базі класів із попередньої лабораторної роботи створіть додаток для демонстрації в коді наступних можливостей: //1.Навести приклад використання 3 статичних методів класу Array (+) //2.Використання ключових слів const та readonly (+) //3.Способів передачі параметрів у метод // a.За значенням(value та reference) (+) // b.Використання ключових слів ref та out в тому числі і out в с#7. (+) // c.Застосування ключового слова params (+) // d.Передача іменованих аргументів. (+) // e.Використання необов‘язкових аргументів (+) // f.Створити метод, який може приймає два або більше параметрів (+) //4.Використання статичних змінних та методів //5. * Додаткове завдання: // a.Розібрати теоретично різницю між const та readonly. // b.Класс містить два масиви: одновимірний та двовимірний.Реалізувати індексатор, який може працювати з одновимірним або двовимірним масивом в залежності від ситуації. // c.Розібрати роботу статичних класів. FurnitureClass table = new FurnitureClass("table", 2, 3); FurnitureClass chair = null; int[] someArr = new int[3] { 1, 2, 3 }; table.ReadThatCopiedArray(someArr); table.TransformCopy(5); Console.WriteLine($"For bad days, there are {FurnitureClass.reservedAmount} reserved things in the storage"); Console.WriteLine($"A number of legs a standart furniture has is {table.GetLegs()}"); FurnitureClass.FixTheSameObject(ref table); FurnitureClass.CreateBrandNewObject(out chair); Console.WriteLine($"{chair.ChangeTitle = "of Fire"}"); chair.RandomEnumeration(56, 77, 88, 99, 010); chair.UnkeptEnumeration(someOne: 12, someTwo: 34, someThree: 56); Console.ReadKey(); }
static public void CreateBrandNewObject(out FurnitureClass newObject) { newObject = new FurnitureClass("smth", 67, 89); Console.WriteLine($"New title is {newObject.ChangeTitle = "Pillar"}"); }
static public void FixTheSameObject(ref FurnitureClass actualObject) // reference parameter { actualObject = new FurnitureClass("sofa", 12, 34); Console.WriteLine($"New title of chair is '{actualObject.title}', new amount is '{actualObject.amount}', new price is '{actualObject.price}'"); }