Простейшие классы - разобрать код - C#
Формулировка задачи:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication16 { class Program { static void Main(string[] args) { BinaryNumber bNum1; BinaryNumber bNum2; BinaryNumber bNum3; BinaryNumber bNum4; //Обработка исключений try { bNum1 = new BinaryNumber("10011"); bNum2 = new BinaryNumber("0011"); bNum3 = new BinaryNumber("10101"); bNum4 = new BinaryNumber("0011"); } catch (FormatException ex) { Console.WriteLine(ex.Message); Console.ReadLine(); return; } //Сложение BinaryNumber bNumRes1 = bNum1 + bNum2; Console.WriteLine(bNumRes1); //Вычитание BinaryNumber bNumRes2 = bNum3 - bNum4; Console.WriteLine(bNumRes2); //Умножение BinaryNumber bNumRes3 = bNum1 * bNum2; Console.WriteLine(bNumRes3); //Деление BinaryNumber bNumRes4 = bNum3 / bNum4; Console.WriteLine(bNumRes4); //Сравнение Console.WriteLine(bNum2.Equals(bNum4)); Console.ReadLine(); } } public class BinaryNumber { //Внутренее значение числа private int innerNumber; //Конструктор с проверкой формата параметра public BinaryNumber(string bNumber) { bool res = bNumber.ToCharArray().Any(n => (n != '0' && n != '1')); if (res) throw new FormatException("Неверный формат данных!"); innerNumber = Convert.ToInt32(bNumber, 2); } //Перегрузка оператора + public static BinaryNumber operator+(BinaryNumber bn1,BinaryNumber bn2) { int b1 = Convert.ToInt32(bn1.ToString(), 2); int b2 = Convert.ToInt32(bn2.ToString(), 2); return new BinaryNumber(Convert.ToString(b1 + b2, 2)); } //Перегрузка оператора - public static BinaryNumber operator -(BinaryNumber bn1, BinaryNumber bn2) { int b1 = Convert.ToInt32(bn1.ToString(), 2); int b2 = Convert.ToInt32(bn2.ToString(), 2); return new BinaryNumber(Convert.ToString(b1 - b2, 2)); } //Перегрузка оператора * public static BinaryNumber operator *(BinaryNumber bn1, BinaryNumber bn2) { int b1 = Convert.ToInt32(bn1.ToString(), 2); int b2 = Convert.ToInt32(bn2.ToString(), 2); return new BinaryNumber(Convert.ToString(b1 * b2, 2)); } //Перегрузка оператора / public static BinaryNumber operator /(BinaryNumber bn1, BinaryNumber bn2) { int b1 = Convert.ToInt32(bn1.ToString(), 2); int b2 = Convert.ToInt32(bn2.ToString(), 2); return new BinaryNumber(Convert.ToString(b1 / b2, 2)); } //Перегрузка Equals public override bool Equals(object obj) { if (obj is BinaryNumber) { if (this.ToString() == ((BinaryNumber)obj).ToString()) return true; } return false; } //Перегрузка GetHashCode public override int GetHashCode() { return this.ToString().GetHashCode(); } //Перегрузка ToString() public override string ToString() { return Convert.ToString(innerNumber, 2); } } }
public class BinaryNumber { //Внутренее значение числа private int innerNumber; //Конструктор с проверкой формата параметра public BinaryNumber(string bNumber) { bool res = bNumber.ToCharArray().Any(n => (n != '0' && n != '1')); if (res) throw new FormatException("Неверный формат данных!"); innerNumber = Convert.ToInt32(bNumber, 2); } //Перегрузка оператора + public static BinaryNumber operator+(BinaryNumber bn1,BinaryNumber bn2) { int b1 = Convert.ToInt32(bn1.ToString(), 2); int b2 = Convert.ToInt32(bn2.ToString(), 2); return new BinaryNumber(Convert.ToString(b1 + b2, 2)); } //Перегрузка оператора - public static BinaryNumber operator -(BinaryNumber bn1, BinaryNumber bn2) { int b1 = Convert.ToInt32(bn1.ToString(), 2); int b2 = Convert.ToInt32(bn2.ToString(), 2); return new BinaryNumber(Convert.ToString(b1 - b2, 2)); } //Перегрузка оператора * public static BinaryNumber operator *(BinaryNumber bn1, BinaryNumber bn2) { int b1 = Convert.ToInt32(bn1.ToString(), 2); int b2 = Convert.ToInt32(bn2.ToString(), 2); return new BinaryNumber(Convert.ToString(b1 * b2, 2)); } //Перегрузка оператора / public static BinaryNumber operator /(BinaryNumber bn1, BinaryNumber bn2) { int b1 = Convert.ToInt32(bn1.ToString(), 2); int b2 = Convert.ToInt32(bn2.ToString(), 2); return new BinaryNumber(Convert.ToString(b1 / b2, 2)); } //Перегрузка Equals public override bool Equals(object obj) { if (obj is BinaryNumber) { if (this.ToString() == ((BinaryNumber)obj).ToString()) return true; } return false; } //Перегрузка GetHashCode public override int GetHashCode() { return this.ToString().GetHashCode(); } //Перегрузка ToString() public override string ToString() { return Convert.ToString(innerNumber, 2); } }
Решение задачи: «Простейшие классы - разобрать код»
textual
Листинг программы
//Перегрузка Equals public override bool Equals(object obj) { if (obj is BinaryNumber) { if (this.ToString() == ((BinaryNumber)obj).ToString()) return true; } return false; } //Перегрузка GetHashCode public override int GetHashCode() { return this.ToString().GetHashCode(); } //Перегрузка ToString() public override string ToString() { return Convert.ToString(innerNumber, 2); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д