Объясните строку int a = int.Parse(Console.ReadLine()); - C#


textual

Код к задаче: «Объясните строку int a = int.Parse(Console.ReadLine()); - C#»

   public enum EOrder
        {
            Less = 1,
            Greater,
            Equals
        } ;
 
        public interface IDriver
        {
            int Left { get; }
            int Rigth { get; }
            EOrder Result { get; }
            int Current { get; set; }
            void Complete(bool isFound, int opCount);
        }
 
        internal class ConsoleDriver : IDriver
        {
            #region Implementation of IDriver
 
            public int Left
            {
                get { return Read("Введите целое число с которого начать отсчет: "); }
            }
 
            public int Rigth
            {
                get { return Read("Введите целое число которым закончить отсчет: "); }
            }
 
            public EOrder Result
            {
                get { return ReadResult(); }
            }
 
            public int Current
            {
                get;
                set;
            }
 
            public void Complete(bool isFound, int opCnt)
            {
                if (isFound)
                {
                    Console.WriteLine("ЧИСЛО ОТГАДАНО! С {0} ПОПЫТКИ", opCnt);
                }
                else
                {
                    Console.WriteLine("Где-то Вы солгали, сударь или сударыня!");
                }
                Console.WriteLine("The end.");
            }
 
            #endregion
 
            private EOrder ReadResult()
            {
                Console.WriteLine("это число {0}?", Current);
                Console.WriteLine("1 - меньше ");
                Console.WriteLine("2 - больше ");
                Console.WriteLine("3 - равно ");
                do
                {
                    int ans = Read("Введите ответ от 1 до 3: ");
                    if (ans < 1 || ans > 3)
                    {
                        PrintError("Чило может быть больше(2), меньше(1) или равно(3) загадонному!");
                        continue;
                    }
                    return (EOrder)ans;
                }
                while (true);
            }
 
 
            private static int Read(string invitation)
            {
                do
                {
                    Console.Write(invitation);
                    string str = Console.ReadLine();
                    if (string.IsNullOrEmpty(str))
                    {
                        PrintError("неверный формат числа!");
                        continue;
                    }
                    int res;
                    if (int.TryParse(str, out res))
                    {
                        return res;
                    }
                    PrintError("неверный формат числа!");
 
                }
                while (true);
            }
 
            private static void PrintError(string message)
            {
                Console.WriteLine();
                Console.WriteLine("**************ОШИБКА!*******************");
                Console.WriteLine(message);
                Console.WriteLine("****************************************");
                Console.WriteLine();
            }
 
        }
 
        class Fortuneteller : IEnumerator<int>, IEnumerable<int>
        {
 
            private readonly IDriver _driver;
            private int _left;
            private int _right;
            private bool _isFound;
            private int _op;
 
            public Fortuneteller(IDriver driver)
            {
                _driver = driver;
                _left = _driver.Left - 1;
                _right = _driver.Rigth + 1;
                _driver.Current = int.MinValue;
            }
 
            private void SetBounds(EOrder order)
            {
                switch (order)
                {
                    case EOrder.Less:
                        _right = _driver.Current;
                        break;
                    case EOrder.Greater:
                        _left = _driver.Current;
                        break;
                    case EOrder.Equals:
                        _left = _right = _driver.Current;
                        _isFound = true;
                        break;
                }
            }
 
            private int GetNext()
            {
                return (_left + _right) / 2;
            }
 
            #region Implementation of IDisposable
 
            public void Dispose()
            {
                _driver.Complete(_isFound, _op);
            }
 
            #endregion
 
            #region Implementation of IEnumerator
 
            public bool MoveNext()
            {
                if (_isFound || (_left >= _right))
                    return false;
                int t = GetNext();
                if (t == _driver.Current)
                    return false;
                _driver.Current = t;
                SetBounds(_driver.Result);
                ++_op;
                return true;
            }
 
            public void Reset() { }
 
            public int Current
            {
                get { return _driver.Current; }
            }
 
            object IEnumerator.Current
            {
                get { return Current; }
            }
 
            #endregion
 
            #region Implementation of IEnumerable
 
            public IEnumerator<int> GetEnumerator()
            {
                return this;
            }
 
            IEnumerator IEnumerable.GetEnumerator()
            {
                return GetEnumerator();
            }
 
            #endregion
        }

СДЕЛАЙТЕ РЕПОСТ

5   голосов, оценка 4.000 из 5



Похожие ответы
  1. Помогите пожалуйста с алгоритмом нахождения такой строки. Заранее спасибо.

  1. Привет , зразу извините за может неправильно сформулирован вопрос ) написал бота для определенных нужд , все отлично.. но.. вот код где с тхт считываться строка с лог и пас

  1. почему выводит последнюю строку ? я питаюсь вывести самою длинною строку .

  1. В общем есть текстовый файл в котором допустим 10 строк. Из них к примеру 6ая и 9ая пустые (не обязательно). Нужно их удалить из текстового файла. А в конце файла добавить 1 пустую строку (ну это я ладно знаю - file.WriteLine).

  1. Добрый день! Проблема следующая: Есть генератор паролей, причем пробовал и просто методом, пробовал и отдельный статический класс и обычный класс - результат одинаковый. Возвращается одна и та же строка. Кликните здесь для просмотра всего текста

  1. Добрый день! Скажите пожалуйста существует ли метод который удаляет первую или несколько строк сначала файла, или нужно сначала считывать файл построчно, обрезать и перезаписывать его. Хочу сделать своего рода очередь сообщений в файле лога. для того чтобы файл не был слишком большим и впоследствии не тормозил работу с ним.

  1. Здравствуйте. Пытаюсь записать строку в файл с помощью Trace.WriteLine. Но ничего не выходит, строка просто игнорируется. Если пройтись дебагом то очень хорошо видно, что исполнение кода просто "перепрыгивает" через неё. Конфиг:XML1 2 3 4 5 6 7 8                                       Сам кусок кода:

  1. нужно ввести 2 переменные или больше в строчку с пробелом ... то есть как то так: