|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
22.09.2016, 17:58 | #1 |
Пользователь
Регистрация: 18.09.2016
Сообщений: 30
|
Типы данных и цикл for в C#
Здравствуйте.
Имеется следующий код. И если изменить тип данных переменных a и b, на что-то отличное от int, то возникает ошибка. Может кто-то объяснить, в чем дело? |
22.09.2016, 18:04 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
при сложении идет расширение до int, который в short/ushort не влазит.
а так вообще-то все написано в подсказке. можете навести на знак минуса, последние студии отобразят типы. + на практике нет смысла уменьшать типы просто так. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. Последний раз редактировалось Пепел Феникса; 22.09.2016 в 18:09. |
22.09.2016, 18:13 | #3 | |
Пользователь
Регистрация: 18.09.2016
Сообщений: 30
|
Цитата:
Т.е. это никак не уменьшить? |
|
22.09.2016, 18:18 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
это экономия на спичках, тем более как видите считается все равно в int'ах.
чтоб исправить ошибку прочитайте сообщение о ней, там есть подсказка. в скобках Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
22.09.2016, 18:23 | #5 |
Пользователь
Регистрация: 18.09.2016
Сообщений: 30
|
|
22.09.2016, 18:25 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
более короткие типы обычно нужны при работе с внешними данными.
так как формат обычно не мы выбираем Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
22.09.2016, 19:14 | #7 |
Старожил
Регистрация: 22.05.2007
Сообщений: 9,085
|
можно написать a = (short) (x - 1), но это бесполезные телодвижения.
Не пытайтесь ничего оптимизировать, пока не прокачаетесь как разработчик. В текущих компиляторах C# и других нормальных языков имеются достаточно неплохие оптимизаторы, которым хорошо известно как подобные вещи оптимизировать. Даже если везде пропишете short, оптимизатор может решить физически пихать в память int и все ваши попытки выиграть горсть байт на выходе не дадут никакой пользы, а будет только плохой код с кучей преобразований типов. |
22.09.2016, 19:52 | #8 | |
Пользователь
Регистрация: 18.09.2016
Сообщений: 30
|
Цитата:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Типы данных | Olper | Microsoft Office Excel | 12 | 08.12.2011 16:37 |
типы данных | sp@ker | Общие вопросы Delphi | 8 | 26.04.2011 20:48 |
типы данных. | svoi92 | Помощь студентам | 2 | 10.02.2011 13:45 |
Типы данных | psycho-coder | Паскаль, Turbo Pascal, PascalABC.NET | 6 | 04.02.2010 20:03 |