diff --git a/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/FormBusCollection.cs b/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/FormBusCollection.cs index b6e8277..5cfbb8e 100644 --- a/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/FormBusCollection.cs +++ b/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/FormBusCollection.cs @@ -43,7 +43,7 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base FormDoubleDeckerBus form = new(); if (form.ShowDialog() == DialogResult.OK) { - if (_theBuses + form.SelectedBus) + if (_theBuses + form.SelectedBus != -1) { MessageBox.Show("Объект добавлен"); pictureBoxCollection.Image = _theBuses.ShowTheBuses(); @@ -62,13 +62,14 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base /// private void ButtonDeleteBus_Click(object sender, EventArgs e) { - if (MessageBox.Show("Удалить объект?", "Удаление", - MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) + if (MessageBox.Show("Удалить объект?", "Удаление", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) { return; } + int pos = Convert.ToInt32(maskedTextBoxNumber.Text); - if (_theBuses - pos != null) + + if (_theBuses - pos != true) { MessageBox.Show("Объект удален"); pictureBoxCollection.Image = _theBuses.ShowTheBuses(); diff --git a/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/Generics/SetGeneric.cs b/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/Generics/SetGeneric.cs index c041aca..d8ee52f 100644 --- a/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/Generics/SetGeneric.cs +++ b/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/Generics/SetGeneric.cs @@ -37,13 +37,8 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base.Generics /// /// Добавляемый автобус /// - public bool Insert(T bus) + public int Insert(T bus) { - if (_places[Count - 1] != null) - { - return false; - } - return Insert(bus, 0); } @@ -53,35 +48,36 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base.Generics /// Добавляемый автобус /// Позиция /// - public bool Insert(T bus, int position) + public int Insert(T bus, int position) { - if (position < 0 || position >= _places.Length) + int nullIndex = -1, i; + + if (position < 0 || position >= Count) { - return false; + return -1; } - if (_places[position] != null) + for (i = position; i < Count; i++) { - int ind = position; - - while (ind < Count && _places[ind] != null) + if (_places[i] == null) { - ind++; + nullIndex = i; + break; } + } - if (ind == Count) - { - return false; - } + if (nullIndex < 0) + { + return -1; + } - for (int i = ind - 1; i >= position; i--) - { - _places[i + 1] = _places[i]; - } + for (i = nullIndex; i > position; i--) + { + _places[i] = _places[i - 1]; } _places[position] = bus; - return true; + return position; } /// @@ -91,7 +87,7 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base.Generics /// public bool Remove(int position) { - if (position < 0 || position >= _places.Length || _places[position] == null) + if (position < 0 || position >= Count) { return false; } @@ -107,7 +103,7 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base.Generics /// public T? Get(int position) { - if (position < 0 || position >= _places.Length) + if (position < 0 || position >= Count) { return null; } diff --git a/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/Generics/TheBusesGenericCollection.cs b/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/Generics/TheBusesGenericCollection.cs index 3eb9dea..16415d7 100644 --- a/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/Generics/TheBusesGenericCollection.cs +++ b/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/PIbd-23_Ivanov_V.N._DoubleDeckerBus._Base/Generics/TheBusesGenericCollection.cs @@ -63,14 +63,13 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base.Generics /// /// /// - public static bool operator +(TheBusesGenericCollection collect, T? - obj) + public static int operator +(TheBusesGenericCollection collect, T? obj) { if (obj == null) { - return false; + return -1; } - return collect?._collection.Insert(obj) ?? false; + return collect._collection.Insert(obj); } /// @@ -79,7 +78,7 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base.Generics /// /// /// - public static T? operator -(TheBusesGenericCollection collect, int + public static bool operator -(TheBusesGenericCollection collect, int pos) { T? obj = collect._collection.Get(pos); @@ -87,7 +86,7 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base.Generics { collect._collection.Remove(pos); } - return obj; + return false; } /// @@ -145,8 +144,7 @@ namespace PIbd_23_Ivanov_V.N._DoubleDeckerBus._Base.Generics if (bus != null) { int inRow = _pictureWidth / _placeSizeWidth; - bus.SetPosition((inRow - 1 - (i % inRow)) * _placeSizeWidth, - i / inRow * _placeSizeHeight); + bus.SetPosition((inRow - 1 - (i % inRow)) * _placeSizeWidth, i / inRow * _placeSizeHeight); bus.DrawTransport(g); } }