Получение значения из структуры - PullRequest
0 голосов
/ 24 декабря 2018

Я пытаюсь получить значение из структуры и использовать значение в OverSized, чтобы использовать его в операторе if.но программа, похоже, не получает никакой информации от негабаритных.написав на консоли, я вижу, что значение overSized равно true (например), но это значение в третьем разделе кода на самом деле не имеет никакого значения.Я неправильно называю overSized?Это моя структура для отправки:

public struct ShippingBox
{
    public int Length;
    public int Width;
    public int Height;
    public bool OverSized;
    public ShippingBox(
        int length,
        int width, 
        int height,
        bool overSized)
    {
        this.Length = length;
        this.Width = width;
        this.Height = height;
        this.OverSized = overSized;
    }
}

, и вот как я даю значение для структуры: (typewiseboxes уже определен)

     bool overSized = false;
     if (some condition)
                    {
                        overSized = true;
                    }

                int l = 0;
                int w = 0;
                int h = 0;
                if (overSized)
                {
                    l = 100;
                    w = 100;
                    h = 100;
                }
                if (boxTypeWiseNumOfBoxes > 0)
                {
                    typeWiseBoxes.Add(
                        new ShippingBox(
                            l,
                            w,
                            h,
                            overSized));
                }

теперь пытаюсь получить значениеувеличенный с этим:

ShippingBox specialBox = new ShippingBox();
        var heavy = specialBox.OverSized; //also tried bool heavy
        int tempLength = 0;
        int tempWidth = 0;
        int tempHeight = 0;
        if (heavy)
        {
            tempLength = 101;
            tempWidth = 8;
            tempHeight = 12;
        }
        else if (!heavy)
        {
            tempLength = 77;
            tempWidth = 8;
            tempHeight = 12;
        }

1 Ответ

0 голосов
/ 24 декабря 2018

Полагаю, вам нужно изменить:

ShippingBox specialBox = new ShippingBox(); // this assigns specialBox an instance of a brand new ShippingBox object
    var heavy = specialBox.OverSized; //heavy will be undefined
    ...

на:

ShippingBox specialBox = typeWiseBoxes.Last(); // this assigns specialBox the instance of the last ShippingBox object added to typeWiseBoxes List
    var heavy = specialBox.OverSized; // heavy is set to the value of OverSized property of last typeWiseBoxes List element
    ...

и, таким образом, вместо specialBox добавить последний элемент в список. совершенно новый один

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...