Создать структуру Arithmetics с определённым внутренним устройством - C#
Формулировка задачи:
Нужно создать структуру Arithmetics, которая состоит из двух полей типа int и трех методов:
- Для вывода значений переменных-членов на экран
- Добавление значений членов класса (метод возвращает результат сложения)
- Деление двух чисел, передаваемых в качестве параметров
Создать указатель и проиграть класс и его методы двумя способами
Решение задачи: «Создать структуру Arithmetics с определённым внутренним устройством»
textual
Листинг программы
using System;
using System.Reflection;
namespace ConsoleApplication
{
internal static class Program
{
private static void Main()
{
var arithmetics = new Arithmetics(3, 4);
Console.WriteLine("Info: {0}", arithmetics.GetInfo());
Console.WriteLine("Sum: {0}", arithmetics.GetSum());
Console.WriteLine("Divide: {0}\n", Arithmetics.Divide(10, 2));
Type classType = typeof(Arithmetics);
ConstructorInfo classConstructor = classType.GetConstructor(new[] { typeof(double), typeof(double) });
object classObject = classConstructor.Invoke(new object[] { 3, 4 });
MethodInfo getInfoMethod = classType.GetMethod("GetInfo");
MethodInfo getSumMethod = classType.GetMethod("GetSum");
MethodInfo divideMethod = classType.GetMethod("Divide");
Console.WriteLine("Info: {0}", getInfoMethod.Invoke(classObject, new object[] { }));
Console.WriteLine("Sum: {0}", getSumMethod.Invoke(classObject, new object[] { }));
Console.WriteLine("Divide: {0}", divideMethod.Invoke(classObject, new object[] { 10, 2 }));
}
}
internal class Arithmetics
{
private readonly double x;
private readonly double y;
public Arithmetics(double x, double y)
{
this.x = x;
this.y = y;
}
public static double Divide(double a, double b)
{
return a / b;
}
public string GetInfo()
{
return string.Format("X = {0}, Y = {1}", this.x, this.y);
}
public double GetSum()
{
return this.x + this.y;
}
}
}