27 / 0 / 1
Регистрация: 01.06.2017
Сообщений: 137
|
||||||
Неявное преобразование типов21.05.2018, 15:35. Показов 4868. Ответов 23
Метки нет Все метки)
(
В данном коде неявное преобразование из int в string?
0
|
21.05.2018, 15:35 | |
Ответы с готовыми решениями:
23
Неявное преобразование типов в C# неявное преобразование перечислимых типов в С# |
27 / 0 / 1
Регистрация: 01.06.2017
Сообщений: 137
|
|
21.05.2018, 16:05 [ТС] | |
пропустила случайно ToString (),а оно работает...раньше встречала что неявное преобразование типа int в тип string невозможно...или это происходит при конкатенации??? если res = x; то ошибка,а если res = x + ""; то преобразовывает??
0
|
171 / 92 / 71
Регистрация: 10.05.2014
Сообщений: 432
|
||||||||
21.05.2018, 16:19 | ||||||||
![]() Решение
0
|
27 / 0 / 1
Регистрация: 01.06.2017
Сообщений: 137
|
|
21.05.2018, 16:46 [ТС] | |
про конкатенацию строк это понятно...и это понятное дело t = v; //Так нельзя преобразовать
но почему t = v + ""; //можно значит все-таки существует неявное преобразование int в string. Почему в данной строке переменная int v преобразуется в string. Потом происходит конкатенация с "" и получаем string t
0
|
управление сложностью
![]() |
||
22.05.2018, 07:46 | ||
1
|
![]() ![]() 13433 / 8964 / 1324
Регистрация: 21.01.2016
Сообщений: 33,646
|
|
22.05.2018, 09:11 | |
Woldemar89, это LINQPad.
3
|
![]() ![]() 17812 / 12963 / 3381
Регистрация: 17.09.2011
Сообщений: 21,251
|
||||||
22.05.2018, 10:01 | ||||||
Преобразования, IL-код...
Давайте уже начнем происходящее в программе, написанной на определенном языке, объяснять правилами этого языка, а не декомпилированными инструкциями. А то так ведь можно договориться до того, что данное поведение наблюдается потому, что это компилятор так скомпилировал. То есть зависит от компилятора. Оператор — это метод; при использовании оператора производится обычное определение наиболее подходящей перегрузки. В примере x + "" левый аргумент — int, правый — string.В типе int нет перегрузок оператора int с параметром string или object, а вот в классе string есть такие перегрузки:
0
|
TheGreatCornholio
![]() 1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||
22.05.2018, 10:20 | ||
![]() string все таки алиас System.String https://referencesource.micros... /string.cs И string operator + там я не вижу.В Visual Studio тоже. Там 11 перегрузок Concat и ни одной string operator + (см. скриншот)А насчет упаковки, в IL есть инструкция box System.Int32 , те, по видимому, здесь используетсяперегрузка public static String Concat(object arg0, object arg1); ,где int упаковывается в object (как Вы и указывали), а вот string, видимо, нет, тк нет необходимости.
0
|
TheGreatCornholio
![]() 1255 / 733 / 285
Регистрация: 30.07.2015
Сообщений: 2,408
|
||||
22.05.2018, 10:37 | ||||
![]() Те получается, сначала запаковка int , потом вызов Concat (о чем нам кстати IL рассказал вполне доходчиво ![]() Ну или меня пиво попутало ![]()
0
|
![]() ![]() 17812 / 12963 / 3381
Регистрация: 17.09.2011
Сообщений: 21,251
|
||||||||||
22.05.2018, 10:55 | ||||||||||
Как производится слияние строк — деталь реализации. А то там ведь можно увидеть и такое:
Более того, просматривая код того же Int32, вы нигде не увидите арифметических операторов. А ведь они есть. Исходники бывают полезны, если интересно как реализовано то или иное, но использовать их в качестве источника знаний о правилах языка — мягко говоря, не лучшая идея.
0
|
22.05.2018, 10:55 | |
Помогаю со студенческими работами здесь
20
Неявное приведение типов - ошибка в коде Быстрое преобразование Фурье и ошибка "Неявное преобразование типа" Неявное преобразование
Неявное преобразование к int Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Чем асинхронная логика (схемотехника) лучше тактируемой, как я думаю, что помимо энергоэффективности - ещё и безопасность.
Hrethgir 14.05.2025
Помимо огромного плюса в энергоэффективности, асинхронная логика - тотальный контроль над каждым совершённым тактом, а значит - безусловная безопасность, где безконтрольно не совершится ни одного. . .
|
Многопоточные приложения на C++
bytestream 14.05.2025
C++ всегда был языком, тесно работающим с железом, и потому особеннно эффективным для многопоточного программирования. Стандарт C++11 произвёл революцию, добавив в язык нативную поддержку потоков,. . .
|
Stack, Queue и Hashtable в C#
UnmanagedCoder 14.05.2025
Каждый опытный разработчик наверняка сталкивался с ситуацией, когда невинный на первый взгляд List<T> превращался в узкое горлышко всего приложения. Причина проста: универсальность – это прекрасно,. . .
|
Как использовать OAuth2 со Spring Security в Java
Javaican 14.05.2025
Протокол OAuth2 часто путают с механизмами аутентификации, хотя по сути это протокол авторизации. Представьте, что вместо передачи ключей от всего дома вашему другу, который пришёл полить цветы, вы. . .
|
Анализ текста на Python с NLTK и Spacy
AI_Generated 14.05.2025
NLTK, старожил в мире обработки естественного языка на Python, содержит богатейшую коллекцию алгоритмов и готовых моделей. Эта библиотека отлично подходит для образовательных целей и. . .
|
Реализация DI в PHP
Jason-Webb 13.05.2025
Когда я начинал писать свой первый крупный PHP-проект, моя архитектура напоминала запутаный клубок спагетти. Классы создавали другие классы внутри себя, зависимости жостко прописывались в коде, а о. . .
|
Обработка изображений в реальном времени на C# с OpenCV
stackOverflow 13.05.2025
Объединение библиотеки компьютерного зрения OpenCV с современным языком программирования C# создаёт симбиоз, который открывает доступ к впечатляющему набору возможностей. Ключевое преимущество этого. . .
|
POCO, ACE, Loki и другие продвинутые C++ библиотеки
NullReferenced 13.05.2025
В C++ разработки существует такое обилие библиотек, что порой кажется, будто ты заблудился в дремучем лесу. И среди этого многообразия POCO (Portable Components) – как маяк для тех, кто ищет. . .
|
Паттерны проектирования GoF на C#
UnmanagedCoder 13.05.2025
Вы наверняка сталкивались с ситуациями, когда код разрастается до неприличных размеров, а его поддержка становится настоящим испытанием. Именно в такие моменты на помощь приходят паттерны Gang of. . .
|
Создаем CLI приложение на Python с Prompt Toolkit
py-thonny 13.05.2025
Современные командные интерфейсы давно перестали быть черно-белыми текстовыми программами, которые многие помнят по старым операционным системам. CLI сегодня – это мощные, интуитивные и даже. . .
|