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

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

11.06.2017, 12:19. Показов 4075. Ответов 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
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,152
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
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,152
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
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,152
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
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,152
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
Ответ Создать тему
Новые блоги и статьи
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг. Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует. В процессе разработки. . .
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации: 1. Вернуть возможность использования знаков | 1 l I;. . .
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru