Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 381

Преобразование типов, отличие

18.07.2023, 11:25. Показов 2572. Ответов 36

Студворк — интернет-сервис помощи студентам
Добрый день. Подскажите пожалуйста? чем отличаться записи и когда нужно использовать первую запись а когда 2ую? Когда нужно использовать (int)a; а когда Convert.ToInt32 (a);

1 запись
C#
1
2
double a = 5.3;
int b = (int)a;
2 запись
C#
1
2
double a = 5.3;
int b = Convert.ToInt32 (a);


Тот же вопрос, но со string

1 запись
C#
1
2
string a = "test";
int b = (int)a;
2 запись
C#
1
2
string a = "test";
int b = Convert.ToInt32 (a);
3 запись
C#
1
2
string a = "test";
int b = Int32.Parse(a);
Можно ли с помощью Parse(a) преобразовывать из int в string? В чем отличие? Когда что лучше использовать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.07.2023, 11:25
Ответы с готовыми решениями:

Не могу вызвать неявное преобразование типов в Main для проверки "Перегрузки операторов преобразования типов"
Добрый день, Написал явное преобразования типов из дроби в тип double (явное потому что если делаю неявным то оно конфликтует с...

Преобразование типов в T
Доброго времени суток всем. Есть у меня List с заранее неизвестным типом <T> Так же есть строка например "1,0" или...

Преобразование типов
Всем привет есть вопросы по преобразованию типов точнее даже не знаю относиться ли эта проблема к этому. вот код public class...

36
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
21.07.2023, 14:32
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от golosalex Посмотреть сообщение
4 байта на чар - это вроде какое-то расширение, где пара чаров переваривается как один символ
Не расширение — обычная часть Юникода.
Стандартом определено место под 1 с лишним лям символов, в 2 байта влезет максимум 65к.
1
152 / 136 / 29
Регистрация: 02.07.2013
Сообщений: 996
21.07.2023, 17:13
Цитата Сообщение от kolorotur Посмотреть сообщение
Не расширение — обычная часть Юникода.

https://learn.microsoft.com/ru... types/char

вот на msdn написано:
Тип string представляет текст как последовательность значений char.

и
Ключевое слово типа char — это псевдоним для типа структуры System.Char .NET, представляющий символ UTF-16 в Юникоде.

вот тут какая-то путаница)))
вызывайте пояснительную бригаду.
как может одновременно быть: строка - последовательность чаров, чары - utf16 и в чар лезет любой сивол юникода (лям с лишним).
как мне кажется всякие символы с большим номером: типа эмодзи подчеркнутый шрифт и прочее будут двумя чарами кодироваться или еще каким-то костылем. например так: "\uD83D\uDC71" при этом надо будет как-то самому радоваться всем сопутствующим проблемам и следить чтобы 2 символа воспринимались при всяких переборах как единый объект.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
21.07.2023, 17:37
Цитата Сообщение от golosalex Посмотреть сообщение
вот тут какая-то путаница
Документация на MSDN зачастую написана для "95% пользователей", т.е. сильно не вдается в детали.
char представляет не "символ", а code unit (увы, не знаю как по-нашенски): минимальное количество байтов, необходимое для представления единицы текста в конкретной кодировке.
В UTF8 это 1 байт, в UTF16 — 2 байта, в UTF32 — 4 байта.

Цитата Сообщение от golosalex Посмотреть сообщение
как может одновременно быть: строка - последовательность чаров, чары - utf16 и в чар лезет любой сивол юникода (лям с лишним).
Никак — о том и речь. Ключевое слово в определении выше — "минимальное".
Те символы Юникода, которые нельзя представить одним code unit'ом, представляются несколькими: до 4-х в UTF8 и двумя в UTF16 — т.н . "суррогатной парой".
Это, разумеется, распространяется только на единичные элементы таблицы. Когда дело доходит до графем, то все становится несколько сложнее — там может потребоваться несколько юнитов для отображения одной "буквы".

Цитата Сообщение от golosalex Посмотреть сообщение
как мне кажется всякие символы с большим номером: типа эмодзи подчеркнутый шрифт и прочее будут двумя чарами кодироваться или еще каким-то костылем
Так точно. Только это не "костыль", а часть кодировки.
Единственная кодировка, в которой порядковый номер символа в Юникоде соответствует его представлению в памяти — это UTF32 (если не брать во внимание порядок байтов).

Цитата Сообщение от golosalex Посмотреть сообщение
при этом надо будет как-то самому радоваться всем сопутствующим проблемам и следить чтобы 2 символа воспринимались при всяких переборах как единый объект.
В .NET для этого есть тип Rune — он работает именно с графемами, а не с отдельными символами кодовой страницы.
2
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3463 / 2784 / 575
Регистрация: 04.09.2018
Сообщений: 8,757
Записей в блоге: 3
21.07.2023, 23:53
kolorotur, не узнаю вас в гримме. Прежняя ава была лучше...
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
22.07.2023, 00:24
wizard41, тут чуть выше в теме ТС настолько мощно рубанул правду-матку и раскрыл здесь присутствующих (нынче зацензурено), что у меня просто не осталось другого выбора.
0
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
22.07.2023, 00:56
kolorotur, щас бы на каждого идиота обращать внимание
требую вернуть что было!
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
22.07.2023, 13:38
Цитата Сообщение от Dr9vik Посмотреть сообщение
щас бы на каждого идиота обращать внимание
Да бросьте — мне оно настроение на весь день подняло.
"Отвратительный быдло-орк, который умеет только бухать и программировать" — чистая поэзия!
6
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 381
27.07.2023, 12:46  [ТС]
Благодарю за помощь кто помог мне разобраться!
Я думаю форум и существует что бы помогать?! А с вопросами 2 + 2 это для того, кто понимает. А кто не понимает это темный лес.

Не понятно, почему мне вынесли предупреждение. За то что я правду написал. То что другие в скрытой форме, пишут - это нормально? Уважаемые модераторы в скрытой форме издеваться это можно?! Внимательно пожалуйста просматривайте форум. И предупреждение нужно выносить тому кто издевается хоть и в скрытой форме. Отвечают не на вопросы а просто пишут чушь токсичную.
0
403 / 265 / 69
Регистрация: 12.04.2020
Сообщений: 1,404
27.07.2023, 12:53
Цитата Сообщение от Мистер Джек Посмотреть сообщение
Я думаю форум и существует что бы помогать?!
нет
попробуйте гуглить
0
1 / 1 / 0
Регистрация: 07.07.2019
Сообщений: 381
27.07.2023, 13:06  [ТС]
Dr9vik вообще-то форумы и существуют что бы помогать и делиться опытом. И данный раздел насколько мне известно называется ДЛЯ НОВИЧКОВ. Гугли -Это ответ, не опытного программиста. Тру программист поможет)))
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
27.07.2023, 23:59

Не по теме:

Цитата Сообщение от Мистер Джек Посмотреть сообщение
Не понятно, почему мне вынесли предупреждение.
Осмелюсь предположить, что не стоит обзывать форумчан быдло-орками и прочими фантастическими тварями. Опуская тот факт что это явное оскорбление, также это контр-продуктивно в плане обсуждения вопроса: не у всех останется желание после этого отвечать на вопрос, а не обсуждать непосредственно само высказывание по отношению к другим.

Цитата Сообщение от Мистер Джек Посмотреть сообщение
Не понятно, почему мне вынесли предупреждение. За то что я правду написал. То что другие в скрытой форме, пишут - это нормально? Уважаемые модераторы в скрытой форме издеваться это можно?! Внимательно пожалуйста просматривайте форум. И предупреждение нужно выносить тому кто издевается хоть и в скрытой форме. Отвечают не на вопросы а просто пишут чушь токсичную.
Под ником есть треугольник с вертикальной чертой. Если считаете что человек систематически издевается -- тыкаете его (треугольник) и указываете причину.



Цитата Сообщение от Мистер Джек Посмотреть сообщение
Гугли -Это ответ, не опытного программиста
Попытаюсь донести определённую мысль:
1. Попробуйте. Вот просто попробуйте, прям заголовок или максимально урезанный текст вопроса вбить в поиск, можно даже на русском. Например C# отличается convert от parse Первый же ответ
Cast - если возможно, лучше использовать его (не всегда есть возможность)
Parse - создан для работы со строками, если у вас есть строка, в которой хранится число, то лучше использовать этот вариант. Важно помнить, что если строка будет равна null, то метод выкинет исключение ArgumentNullException
Convert - для строк вызывает внутри себя метод Parse, при этом, если строка null, то метод не выкидывает исключение, а возвращает 0. Так же он может принимать любой объект, который реализует интерфейс IConvertible, поэтому его лучше использовать когда не известно, что именно строка придёт в метод. Ещё у Convert есть возможность конвертировать в любой тип в generic методах. Для строк Parse чуть чуть отработает быстрее, чем Convert

P.S. В интернете куча ответов на этот вопрос, учитесь искать на английском - 95% информации там
2. Такие вопросы мелькают перед глазами чуть-ли не еженедельно. Знаете почему у консьержки такой печальный взгляд и меланхоличный голос? Потому что на входе висит "лифт не работает", но её всё равно спрашивают "а что -- лифт не работает?"
3. Вам писали насчет кода int x = (int)"123"; -- попробовать его ввести в студии не из злобного желания поиздеваться, а чтобы вы во-первых сами лично убедились что такой синтаксис не рабочий, а во-вторых осознали что перед тем как задавать вопрос "а можно ли так" сначала попробовали.
3
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
28.07.2023, 10:07
Цитата Сообщение от Wolfdp Посмотреть сообщение
Под ником есть треугольник с вертикальной чертой.

Не по теме:

Как не парадоксально, "вертикальная черта" - это стилизация "восклицательного знака", а не просто черта....
Не очень удачная иконка. Лучше было бы что-то такое:
Название: Знак внимание.png
Просмотров: 106

Размер: 4.8 Кб


0
28.07.2023, 12:29

Не по теме:

Элд Хасп, выделение, на которое вы поменяли, как на панели редактирования сообщения называется?

0
 Аватар для Andrey-MSK
3397 / 2283 / 388
Регистрация: 14.08.2018
Сообщений: 7,754
Записей в блоге: 4
28.07.2023, 12:31
Wolfdp, INLINE

Добавлено через 32 секунды
Wolfdp, Или вы про рамку?
1
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
28.07.2023, 12:35
Andrey-MSK, я про этот текст, спс.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
28.07.2023, 14:54
Цитата Сообщение от Wolfdp Посмотреть сообщение
выделение, на которое вы поменяли, как на панели редактирования сообщения называется?
[ INLINE]Какой-то текст[/ INLINE]
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,175
Записей в блоге: 2
28.07.2023, 14:55
Wolfdp, уже сами разобрались...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.07.2023, 14:55

Преобразование типов
Что-то совсем в тупик зашла.Как здесь явно преобразовать? public SortedDictionary<char, double> Info(string txt) { ...

Преобразование типов
подскажите как преобразовать правильно значение стринг в булеан мой пример: namespace ConsoleApp15 { public class...

Преобразование типов
Необходимо реализовать на уровне класса преобразование примитива в объект указанного класса: SomeClass qwe = 5; Если в обратную...

Преобразование типов
Код: using System; using System.Text; public class Program { public static void Main(string args) { string...

Преобразование типов
Я унаследовал стандартный класс Socket в своем классе ASock. Вопрос о приведение типа Socket к моему классу ASock. Вот так не работает:...


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

Или воспользуйтесь поиском по форуму:
37
Ответ Создать тему
Новые блоги и статьи
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru