Индексатор с защитой от выхода - C#

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

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

Создайте индексатор с методами доступа get и set для класса MyClass, который будет проверять, выходит ли индекс за диапазон массива. В случае, если выходит – геттер будет возвращать строку "index out of range", а сеттер – просто не выполнять присвоение. Исходник
using System;
 
namespace Less05_task03
{
    class Program
    {
        static void Main(string[] args)
        {
            MyClass instance = new MyClass();
 
            Console.WriteLine(instance[2]);
            //выход за пределы массива
            Console.WriteLine(instance[10]);
 
            Console.ReadKey();
        }
    }
 
    class MyClass
    {
        string[] array = new string[3] { "one", "two", "three" };
    }
}
Решил, но не правильно
using System;
 
namespace Less05_task03
{
    class Program
    {
        static void Main(string[] args)
        {
            MyClass instance = new MyClass();
 
            Console.WriteLine(instance[2]);
            //выход за пределы массива
            Console.WriteLine(instance[10]);
 
            Console.ReadKey();
        }
    }
 
    class MyClass
    {
        string[] array = new string[3] { "one", "two", "three" };
       
        public string this[string index]
        {
            set
            {
                for (int i = 0; i < array.Length;i++ )
                    if (array[3] == index )
                    {
                        array[3] += index;
                    }
            }
            get
            {
                for (int i = 0; i < array.Length; i++)
                    if (array[3] == index)
                    {
                        return string.Format("ok");
 
                    }
                    else return string.Format("index out of range");
                return string.Format("ok");
            }
        }
    }
}
О, вот так додумался))
class MyClass
    {
        string[] array = new string[3] { "one", "two", "three" };
       
        public string this[int index]
        {
            set
            {               
                    if ( 0 >= index || index < 4 )
                    {
                        
                    }
            }
            get
            {
                if (0 >= index || index < 4)
                {
                    return string.Format("ok");
                }
                    else return string.Format("index out of range");
                
            }
        }
    }
Не, на сайте с проверкой, пишет не верно(
Не, на сайте с проверкой, пишет не верно(

Решение задачи: «Индексатор с защитой от выхода»

textual
Листинг программы
class MyClass
 {
        string[] array = new string[3] { "one", "two", "three" };
 
        public string this[int index]
        {
            get
            {
                if (index >= 0 && index < array.Length)
                return array[index];
                else
                return "index out of range";
            }
            set
            {
                if (index >= 0 && index < array.Length)
                array[index] = value;
            }
        }
 }

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


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

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

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