Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
80 / 58 / 11
Регистрация: 16.12.2013
Сообщений: 175

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

12.04.2014, 07:03. Показов 1029. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++. Соответственно, это не работает, работает (++i).ToString(). С одной стороны это будто бы логично, если после точки стоит ссылка на член класса, то значение должно быть типа члена, а не типа класса. Но, разве префиксных операторов это должно касаться? Они на то ж и префиксные, чтоб вычисляться до любых прочих действий с объектом.
1
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2014, 07:03
Ответы с готовыми решениями:

Разница между string.Concat(x,y) и x.ToString()+y.ToString()
Вроде как одно и то же, но дает разные результаты в операции поиска палиндромов. К примеру, взять число 1010: ...

Ошибка при переопределении ToString()
Здравствуйте, уважаемые форумчане. Имеется 2 класса: Commodity(абстрактный), Product В каждом из классов переопределен метод ToString(). ...

Не сохраняется 0 при переводе значений int.ToString();
Добрый день. Проблема описана в названии. private void button1_Click(object sender, EventArgs e) { int parol; ...

3
 Аватар для NekoKira
62 / 49 / 37
Регистрация: 08.07.2012
Сообщений: 181
12.04.2014, 08:50
Код покажите!
0
2444 / 1842 / 406
Регистрация: 15.12.2013
Сообщений: 8,243
12.04.2014, 09:19
Цитата Сообщение от Австрал Посмотреть сообщение
При вычислении выражения ++i.ToString() сначала вычисляется ToString(), а потом ++.
Все правильно,так и должно быть.

Цитата Сообщение от Австрал Посмотреть сообщение
Они на то ж и префиксные, чтоб вычисляться до любых прочих действий с объектом.
Так объект в данном случае это i, приведенное к строке.
0
Master of Orion
Эксперт .NET
 Аватар для Psilon
6102 / 4958 / 905
Регистрация: 10.07.2011
Сообщений: 14,522
Записей в блоге: 5
12.04.2014, 10:59
Австрал, Любопытно, сейчас затестим.

Добавлено через 5 минут
Австрал, аа, понял, что вы имеете ввиду.

Оператор применяется к последнему оператору в цепочке методов. Поэтому в таком примере:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
        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);
        }
не будет никакой ошибки и выведется один. Хотя по вашей логике должен вызываться ++ к myObj, что неправильно. У операторов низший приоритет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.04.2014, 10:59
Помогаю со студенческими работами здесь

Неожиданное ArgumentOutOfRangeException при вызове DateTime.ToString()
подскажите плиз есть в проге такая строчка str = DateTime.Now.ToString("hh:mm:ss.fff"); на одном компе (sp3 rus + express 2010...

Не корректно работает форматирование строки при преобразовании DateTime.ToString(string format)
Добрый день! Имеется строка для форматирования даты в классе MainForm: public static string DATE_FORMAT_MY = "dd/MM/yyyy...

Во второй массив сначала переписать сначала положительные, потом 0, потом отрицательные
Не могу решить задачу, прямо застрял на ней. Помогите, пожалуйста. Нужно: заполнить массив из 10 элементов положительными и...

ToString
Не пойму почему в выводе bitstring3 (сумма 1,2) выводится как null, а не сложенный массив, пробовал через toString, все равно не выходит ...

ToString(36)
Добрый день . Во многих крипто алгоритмах на Java или Delphi для кодировки char используется ToString(36). А как это повторить на C# ?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru