При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++ - C#

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

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

При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++. Соответственно, это не работает, работает (++i).ToString(). С одной стороны это будто бы логично, если после точки стоит ссылка на член класса, то значение должно быть типа члена, а не типа класса. Но, разве префиксных операторов это должно касаться? Они на то ж и префиксные, чтоб вычисляться до любых прочих действий с объектом.

Решение задачи: «При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++»

textual
Листинг программы
        class MyClass
        {
            public int X { get; set; }
            public MyClass Foo()
            {
                //something
                return this;
            }
            public MyClass Boo()
            {
                //something else 
                return this;
            }
 
            public MyClass Bar()
            {
                //again something else 
                return this;
            }
        }
        static void Main(string[] args)
        {
            var myObj = new MyClass();
            int x = ++myObj.Foo().Bar().Boo().X;
            Console.WriteLine(x);
        }

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


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

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

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