C # установка значений многомерного массива с помощью конструктора - PullRequest
0 голосов
/ 25 сентября 2018

Я хотел бы знать, как использовать конструктор класса для установки значений многомерного массива.Я использовал конструктор для установки значений целых чисел ранее (см. Ниже), но этот синтаксис, похоже, не работает с массивами.

Вот как я бы использовал конструктор с целыми числами

public class Warehouse
{   
    //declares instance variables
    public int radios;
    public int televisions;
    public int computers;


    //Creates constructor with 0 inventory
    public Warehouse()
    {
        radios = 0;
        televisions = 0;
        computers = 0;
    }

Этот код выше работал для меня в предыдущих заданиях.Тем не менее, код ниже - это то, что я сейчас пытаюсь исправить.Visual Studio говорит, что переменные не используются и останутся со значением по умолчанию.Кроме того, запятые в строках, присваивающих значение каждому индексу, подчеркнуты красным цветом, указывая на то, что вместо них ожидается точка с запятой.Есть ли другой способ использования конструктора для установки значений этих массивов?Я бы просто объявил значения вместе с массивами, но присваивание требует использования конструктора.

public class Matrix
{
    public double[,] matrixX;
    public double[,] matrixY;
    public double[,] xySum;
    public double[,] xyDiff;
    public double[,] xScalar;

    public Matrix()
    {
        matrixX = { { 1.1, 2.2, 3.3 }, { 4.4, 5.5, 6.6 }, { 7.7, 8.8, 9.9 } };
        matrixY = { { 9.9, 8.8, 7.7 }, { 6.6, 5.5, 4.4 }, { 3.3, 2.2, 1.1 } };
        xySum = { { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 } };
        xyDiff = { { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 } };
        xScalar = { { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 }, { 0.0, 0.0, 0.0 } };
    }

1 Ответ

0 голосов
/ 25 сентября 2018

Каждый раз, когда создается новый объект, ключевое слово new должно появляться где-то всегда, если только вы не используете Reflection и Activator.CreateInstance()).Таким образом, чтобы инициализировать массивы, вы должны объявить new double[,] как часть назначения.

Так что вместо этого:

    matrixX = { { 1.1, 2.2, 3.3 }, { 4.4, 5.5, 6.6 }, { 7.7, 8.8, 9.9 } };

Используйте это:

    matrixX = new double[,] { { 1.1, 2.2, 3.3 }, { 4.4, 5.5, 6.6 }, { 7.7, 8.8, 9.9 } };
...