esstry
Вы из второй таблицы взяли 10 вариант? do while?
ЯковПервый
Да, там же в коде всё видно (сначала создаем массив, потом проходимся по нему этим циклом): do { sum += nums[index++]; } while (index < nums.Length);
esstry
Пожалуйста, Дополните класс, делегатом. Создайте минимум 2 соответствующих метода для делегата в классе. Реализуйте добавление методов в делегат, объединение делегатов. Продемонстрируйте работу делегатов. Интерфейс, позволяющий демонстрировать все возможности системы, разработать самостоятельно.
ЯковПервый
Делегат произвольный? Или он должен быть как-то связан с чем-либо?
esstry
Наверное произвольный. Ну или не важно. Делегат нужно добавить в 1 задание. Вот в это: "В рамках программного модуля создать класс А"
ЯковПервый
Прошло много времени, дополнить ответ уже нельзя. Создайте новый вопрос, в котором пришлите условие задачи (включая дополнение).
Answers & Comments
// Форма
using System;
using System.Windows.Forms;
namespace WinFormsApp1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
// Используем ctor B(int a, int b)
private void CalcBtn_Click(object sender, EventArgs e)
{
if (!GetAB(out int a, out int b))
{
MessageBox.Show("Incorrect values.");
return;
}
var obj = new B(a, b);
InfoListBox.Items.Add($"{a} + {b} + 15 = {obj.M}");
}
// Используем ctor B()
private void CalcDefaultBtn_Click(object sender, EventArgs e)
{
if (!GetAB(out int a, out int b))
{
MessageBox.Show("Incorrect values.");
return;
}
var obj = new B();
InfoListBox.Items.Add($"3 + 5 + 15 = {obj.M}");
}
// Используем ctor A(int a, int b)
private void ShowC1Btn_Click(object sender, EventArgs e)
{
if (!GetAB(out int a, out int b))
{
MessageBox.Show("Incorrect values.");
return;
}
var obj = new A(a, b);
InfoListBox.Items.Add($"a++ = {obj.C1}");
}
// Используем ctor A(int a, int b)
private void ShowC2Btn_Click(object sender, EventArgs e)
{
if (!GetAB(out int a, out int b))
{
MessageBox.Show("Incorrect values.");
return;
}
var obj = new A(a, b);
InfoListBox.Items.Add($"b++ = {obj.C2}");
}
private bool GetAB(out int a, out int b)
{
try
{
a = int.Parse(AValueTextBox.Text);
b = int.Parse(BValueTextBox.Text);
return true;
}
catch
{
a = b = 0;
return false;
}
}
}
}
// class A
using System;
namespace WinFormsApp1
{
internal class A
{
private decimal a = 3;
private decimal b = 5;
public decimal C1 => a++;
public decimal C2 => b++;
public A() { }
public A(int a, int b)
{
this.a = a;
this.b = b;
}
public decimal D1()
{
return C1 * C1;
}
public decimal D2()
{
return C2 * C2;
}
}
}
// class B
using System;
namespace WinFormsApp1
{
internal class B : A
{
private decimal g = 15;
// Вычисляем выражение a + b + g
public decimal M
{
get
{
var nums = new decimal[] { C1, C2, g };
int index = 0;
decimal sum = 0;
do
{
sum += nums[index++];
}
while (index < nums.Length);
return sum;
}
}
public B() { }
public B(int a, int b) : base(a, b) { }
}
}
do
{
sum += nums[index++];
}
while (index < nums.Length);