Передача управления от конструктора конструктору - C#
Формулировка задачи:
А как можно сделать , чтобы в программе вместо строки : public B() : this (5,3) { }
вместо 5 и 3 можно было бы подставлять значение свойства и значение какого-то поля класса B ? Чтобы соответствовало заданию : “ Разработать конструктор для инициализации массива, который при своем вызове передает управление собственному конструктору класса В “. Дело в том , что у меня в программе нужно использовать значение свойства и значение какого-то поля класса B . Пробовал сам сделать , перебрал разные варианты , что-то не так не получается.
Само задание :
В класс В добавить поле-массив. Разработать конструктор для инициализации массива, который при своем вызове передает управление собственному конструктору класса В. Размер массива – поле , инициализация элементов массива: свойство с2 класса B, умноженное на индекс элемента массива. В программе вывести на экран элементы массива. Для вывода использовать цикл foreach.
using System;
namespace Lab2
{
class B
{
public int[] arr;
public B(int length, int initialValue)
{
arr = new int[length];
for (int i = 0; i < length; i++)
arr[i] = i*initialValue ;
}
public B() : this (5,3) { }
}
class Program
{
static void Main()
{
B x = new B();
foreach (int element in x.arr)
{
Console.WriteLine(element);
}
Console.ReadKey();
}
}
}Решение задачи: «Передача управления от конструктора конструктору»
textual
Листинг программы
using System;
namespace Lab2
{
class B
{
public int[] arr;
int count;
int c2 { set; get; }
public B(int length, int initialValue): this(initialValue)
{
count = length;
arr = new int[count];
for (int i = 0; i < count; i++)
arr[i] = i * c2;
}
B(int initialValue)
{
c2 = initialValue;
}
}
class Program
{
static void Main()
{
B x = new B(10, 2);
foreach (int element in x.arr)
{
Console.WriteLine(element);
}
Console.ReadKey();
}
}
}