Выход за границы массива в блоке set{} - C#

Узнай цену своей работы

Формулировка задачи:

Собственно сабж. Почему он выходит за рамки, если идет заведомая проверка на это?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsolePanel
{
 
    class Testing
    {
        private int[] mas;
        public byte length;
 
        public Testing(byte s)
        {
            mas = new int[s];
            length = s;
        }
 
        public int this[int index]
        {
            get 
            {
                if (index >= 0 & index <= length) return mas[index];
                else return 0;
            }
            set 
            {
                if(index>=0 & index<=length) mas[index] = value; // здесь выходит якобы за границы массива
            }
        } 
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            Testing t = new Testing(5);
            for (sbyte i = 0; i < (t.length*2); i++ ) 
            {
                t[i] = i;
                Console.Write("t[{1}] = {0}\n",t[i],i);
            }
            Console.ReadLine();
        }
    }
}

Решение задачи: «Выход за границы массива в блоке set{}»

textual
Листинг программы
if(index>=0 & index<length) mas[index] = value;

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы