Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.50/18: Рейтинг темы: голосов - 18, средняя оценка - 4.50
 Аватар для RaevskiAnatoly
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444

Что раздражает в C#

11.06.2017, 12:19. Показов 4036. Ответов 42
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть у нас множество целочисленных типов , с разным диапозоном значений и разным обьемом занимаемой ими памятью. И созданы они для чего? Я так полагаю чтоб памяти брать столько , сколько требуется. Тогда почему везде ИНТ! В BigInteger возвращаем знак - 0 +1 -1 . Три состояния , по факту sbyte бы подошел идеально . Но нет , нужно 3 лишних байта , чтоб были , конечно . Длинна строки , почему бы не UInt32 (uint) , буд-то длинна строки может быть отрицательной!? Мне вообще кажется , что ограничение по кол-ву символов в строке именно такое , из-за диапозона значений int. Кажется мелочь?Как же много КОПИЙ создается , ужас : геттеры свойств - копия , константа в метод - копия , обращение к ячейке массива - копия . О да , я вспомнил что индексация в массиве тоже интовская , тоесть теоретически допускать отрицательный индекс можно , но допускать на деле нельзя - это прям садизм. Я понимаю , копии , возможно , создаются чтоб не было лишком много обращений к одной и той же ячейке памяти , мол работайте с копиями . Еще больше меня начала бесить эта статическая типизация ! Принцип мне нравится , но механизм конвертации!!! Я не про наследование , я про преобразование , скажем , типа своего числа в инт . Свое число ты можешь преобразовать в строку , а уж ее в любой целочисленный или дробный тип. Кажется механизм универсален , но тебе прийдется реализовать чертову тучу членов IConvertibl"я . А то что ты можешь получить Type a.GetType() , это прям раненая антилопа , этот класс Type , эта рефлексия костыльная! Нет чтоб можно было так :
C#
1
2
 var T = ParObj.GetType();
 return T1 as T
Чтоб Type - был не заурядным классом , а самым настоящим типом , да это будет на уровне оператора , но и что!. А компилятор , следит за тобой как за 3х летним ! Не присвоил я значение и использую , а может мне так надо ! Конвертация в генерик тип return (T)Object, невозможно ему преобразовать , он же даже не знает чем будет тип T . Ах он ошибки исключает , да он мозги выкручивает , а не исключает! А множественные блоки extern , нельзя ли их определить в один общий , сократить этим кол-во повторяющихся конструкций . А скобочки везде ? В switch ? if ? В методах без парметров . Может компилятору и легче , а ведь это раздражает.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.06.2017, 12:19
Ответы с готовыми решениями:

Что людям нравится в C#, что их раздражает в С++?
Здрасте! Я тут решил посоздавать библиотеки для С++, побаловаться. Идея такая: создаю для С++ классы и функции идентичные таковым в...

Что или кто вас больше всего раздражает
Вынесено из https://www.cyberforum.ru/dump/thread625962.html А я уже заколебался воевать с мухами которые топчатся по центральному...

раздражает Яндекс?..
раздражает Яндекс?.. теперь есть возможность высказаться: http://advisor.wmtransfer.com/newfeedback.aspx?url=yandex.ru не забывайте...

42
Эксперт .NET
 Аватар для Usaga
14800 / 9574 / 1367
Регистрация: 21.01.2016
Сообщений: 36,084
12.06.2017, 13:45
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
Там можно опускать обычные?
Нет. Для вас это - фатальный недостаток языка?
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
12.06.2017, 13:45
Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
но я тоже умею читать сообщения компилятора
Раз умеете, не пишите бредовые примеры.
0
 Аватар для RaevskiAnatoly
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
12.06.2017, 13:46  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
Какие еще копии?
Возвращается значение переменной , а не ссылка , но ведь возвратить значение - создать где-то в памяти копию переменной.
0
Эксперт .NET
 Аватар для Usaga
14800 / 9574 / 1367
Регистрация: 21.01.2016
Сообщений: 36,084
12.06.2017, 13:51
RaevskiAnatoly, в случае с int, byte, float, double, char, long ничего в памяти не создаётся. Значения возвращаются в регистре процессора. Расхода памяти - нуль. Регистр используется 32 или 64 битный (в зависимости от архитектуры), потому экономии на возвращении byte вместо int32 - нет.
0
 Аватар для RaevskiAnatoly
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
12.06.2017, 13:52  [ТС]
Цитата Сообщение от Psilon Посмотреть сообщение
В общем, судя по всем высказываниям, рекомендую питон
Питон медленный , а главное - это его замечательные отступы , которыми он вынес мозг месяц назад моему другу на паскале теперь , бедняга расслабляется(Дотнетовском).
0
Эксперт .NET
 Аватар для Usaga
14800 / 9574 / 1367
Регистрация: 21.01.2016
Сообщений: 36,084
12.06.2017, 13:53
В случае возвращения стуктуры, она записывается в буфер в стёке, который уже выделен, поэтому, кроме затрат времени на копирование, расхода памяти опять же нет.
0
12.06.2017, 14:01  [ТС]

Не по теме:

Ну вот вроде все. Можно идти и терпеть дальше:)
И на моей улице будет оптоволокно! Заживем...

0
12.06.2017, 14:04

Не по теме:

RaevskiAnatoly, т.е. C# теперь не г*вно?

0
484 / 397 / 68
Регистрация: 14.02.2014
Сообщений: 1,930
13.06.2017, 10:17
Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
А скобочки везде ? В switch ? if ? В методах без парметров .
Цитата Сообщение от Someone007 Посмотреть сообщение
Там синтаксис вообще ужасный... Бесконечные End вместо скобочек, а имена переменных и их тип пишутся задом на перед. А еще всякие Dim, Sub и прочий мусор... Уж лучше скобочки чем это...
Добро пожаловать в Питон. Никаких скобочек...только отступы )))

Добавлено через 7 минут
Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
Питон медленный
И что?
0
TheGreatCornholio
 Аватар для Woldemar89
1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
13.06.2017, 12:27
RaevskiAnatoly, очень странные и проблемные темы поднимаете, причем проблемы эти, к сожалению в Вас самих.
Выживали раньше диалапами по 20 мин в день, я уговорил как-то друга спереть на полчаса диск втихую с пиратским C++ Builder у его старшего брата программиста (который так не дал бы его)
- мы съездили через весь поселок на велосипедах ко мне - скопировали - увезли обратно - и незаметно обратно положили.
Собственно с этого мой программисткий путь начинался)

А насчет языка - Вы просто не умеете его готовить)
Да и большинство кодеров используют только около половины его возможностей, если не меньше.
Так что, думайте, думайте, и еще раз думайте, как исправить ситуацию, а не ныть)
Просите помощи и советов, а не слезы вытереть и выслушать, тут не форум психологов)
1
7 / 7 / 1
Регистрация: 24.01.2017
Сообщений: 229
13.06.2017, 13:10

Не по теме:

Теперь ждём "Что раздражает в С++", "Что раздражает в Java", etc...



Все ваши эмоции от плохого знания языка, имхо.
1
 Аватар для RaevskiAnatoly
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
13.06.2017, 16:15  [ТС]
Какие-то странные вы! Излагаете свои выводы как констататации фактов. Кто говорил что C# говно? Не ну правда) Да и сами подумайте , зачем мне создавать тему и говорить что мне не нравится?Я для этого и создал , чтоб узнать ваше мнение и , конечно , обьяснение почему так. И кто тут ноет , да и какая разница вариантов на чем писать все равно нет.(конечно есть , но этот язык я выбирал долго и это лучший для меня из всех вариантов сейчас , да и инета нет чтоб IDe качать всякие)
0
Эксперт .NET
 Аватар для Usaga
14800 / 9574 / 1367
Регистрация: 21.01.2016
Сообщений: 36,084
13.06.2017, 16:45
RaevskiAnatoly, ну не знаю. Ваш бурный поток эмоций в первом посте показался мне выражением крайнего недовольства языком)))
0
7 / 7 / 1
Регистрация: 24.01.2017
Сообщений: 229
13.06.2017, 17:01
Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
Длинна строки , почему бы не UInt32 (uint) , буд-то длинна строки может быть отрицательной!?
int - самый используемый тип целых чисел. Если бы длина строки была uint, то ваш код был бы хуже в плане производительности, т.к. во всех сравнениях и арифметических операциях происходило бы приведение типов.
if (s.Length > 0) // простая проверка, что строка не пустая. А по факту ноль имеет тип int и будет приводиться к типу uint.

Все целочисленные литералы в шарпе имеют тип int, если нет специального суффикса.
Как уже ранее написали, при взаимодействии с другими языками и при маршалинге, uint может не работать.

Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
Как же много КОПИЙ создается , ужас : геттеры свойств - копия , константа в метод - копия , обращение к ячейке массива - копия .
Никаких копий не создаётся. Строки - это ссылочные типы (но с одной особенностью), т.е. геттер не будет возвращать копию строки, а только ссылку. При попытке же изменить строку произойдет просто создание новой строки с заданными изменениями. (в C++ например, с копированием всё намного сложнее).
Гораздо хуже, когда шарпист не знает про упаковку/распаковку значимых типов и пишет код не задумываясь над этим.

Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
тоесть теоретически допускать отрицательный индекс можно
Индекс != Порядковый номер. Индекс может быть чем угодно, хоть строкой, хоть объектом.

Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
Свое число ты можешь преобразовать в строку , а уж ее в любой целочисленный или дробный тип.
Я не понял, что значит "свое число" и зачем городить IConvertible. Для этого есть перегрузки операторов. IConvertible нужен очень редко.

Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
А то что ты можешь получить Type a.GetType() , это прям раненая антилопа , этот класс Type , эта рефлексия костыльная!
Весьма полезный класс.
0
 Аватар для RaevskiAnatoly
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
13.06.2017, 21:44  [ТС]
Цитата Сообщение от SharpProg Посмотреть сообщение
Я не понял, что значит "свое число"
Например с помощью BigInteger можно написать свой класс представляющий число со знаком и знаками после запятой бесконечной точности (ну конечно не бесконечной ,н у).И конвертация этого типа...По идее универсальный механизм - ToString -> любой базовый тип чисел . А по сути одно и тоже прийдется писать в реализации Iconвербла

Добавлено через 53 минуты
Цитата Сообщение от SharpProg Посмотреть сообщение
Весьма полезный класс.
Попробовал сегодня чрез этот весьма полезный запустить окно WPF. Там библиотека на Pascal , и статический метод , статического класса. Ну я проверил работу либы , дело в рефлексии. Вызванный метод тут же завершает работу и все. Причем без рефлексивного вызова работает.
0
Эксперт .NET
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
13.06.2017, 22:17
Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
По идее универсальный механизм - ToString -> любой базовый тип чисел .
Зачем нужен ToString при конвертировании числовых типов для меня остаётся загадкой...

Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
Попробовал сегодня чрез этот весьма полезный запустить окно WPF. Там библиотека на Pascal , и статический метод , статического класса. Ну я проверил работу либы , дело в рефлексии. Вызванный метод тут же завершает работу и все. Причем без рефлексивного вызова работает.
А может дело в кривых руках? Код в студию.
0
7 / 7 / 1
Регистрация: 24.01.2017
Сообщений: 229
14.06.2017, 08:08
Цитата Сообщение от RaevskiAnatoly Посмотреть сообщение
Попробовал сегодня чрез этот весьма полезный запустить окно WPF. Там библиотека на Pascal , и статический метод , статического класса

Не по теме:

"Какой заяц? Какой орел? Какая блоха... ?"

1
 Аватар для RaevskiAnatoly
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
14.06.2017, 13:23  [ТС]
Цитата Сообщение от Someone007 Посмотреть сообщение
Зачем нужен ToString при конвертировании числовых типов для меня остаётся загадкой...
Конечно , загадкой если читать то что я пишу фрагментами.

Добавлено через 4 минуты
Цитата Сообщение от Someone007 Посмотреть сообщение
Код в студию.
Система была слишком длинной , я ее упростил. И там вообще рефлексия не используется. А восстанавливать ... К чему
Вот сейчас она работает так - Как ускорить прорисовку?
0
14.06.2017, 13:27

Не по теме:

RaevskiAnatoly, под "загадкой", насколько я понял, понимается вопиющий, оголтелый говнокод. Собственно, одного фрагмента и достаточно, чтобы понять это. :)

0
 Аватар для RaevskiAnatoly
34 / 35 / 12
Регистрация: 04.03.2017
Сообщений: 444
14.06.2017, 16:21  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
оголтелый говнокод

Не по теме:

Не угадал , под загадкой скрывается обычный текст , который я написал , а ты предпочел не читать.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.06.2017, 16:21

ScrollBar'ы мигают... раздражает :))
Здравствуйте. Почему, при использовании ScrollBar'ов они начинают мигать? Причем мигает только тот, который юзался последним. Понимаю, что...

Intel® Entry Storage System SS4000-E -- двойной писк раздражает
Как отключить спикер (пищалку) у Intel® Entry Storage System SS4000-E ? Агрегат стоит в комнате и мешает спать, время от времени делая...

Какой вид интернет-рекламы раздражает Вас больше всего?
Всем привет! Хотелось бы узнать, у населения, какой вид интернет-рекламы раздражает больше всего. И если вдруг есть какие-либо аргументы -...

Компьютер тормозит, компьютер раздражает
Сейчас проблема обострилась в своём идиотизме. Ставлю благодарно позаимствованный Assassin's Creed IV Black Flag - тормоза, хоть...

Запуск процесса что лучше? что быстрее? что надежнее? Winexec CreateProcess ShellExecute
Здравствуйте , какую функцию лучше использовать для программного запуска процесса winexec CreateProcess ShellExecute ? В чем...


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

Или воспользуйтесь поиском по форуму:
40
Ответ Создать тему
Новые блоги и статьи
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
GitHub Copilot в JetBrains: модель по умолчанию, Fix и контроль MCP
and_y87 12.10.2026
10 октября 2026 года GitHub обновил Copilot для JetBrains: добавил настройки стартовой модели, исправления из диагностики и управление автозапуском MCP. Поддержка IDE 2025. 1 прекращена — требуется. . .
День 5 из 28: Codex подсказывает следующий запрос
and_y87 12.10.2026
9 октября 2026 года OpenAI запустила бету Composer predictions — подсказок следующего сообщения в текущем диалоге Codex. Это помощь с формулировкой запроса, а не автоматическое продолжение задачи. . . .
Запустил конкурс "тем и промптов для текстовых квестов созданных почти чисто ИИ"
Adler 06.10.2026
Всем привет! За последние три-четыре дня я создал более 16 текстовых квестовых игр используя преимущественно по одному запросу к ИИ на игру. Мне так понравилось смотреть все ветки/ сцены во всех. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru