|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Чем отличается запись (int32)value от Convert.ToInt32(value) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 16:42 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
(int32)value – явное преобразование типа Convert.ToInt32(value) – вызов метода ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 16:48 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
(int32)value - преобразует только из числовых типов ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 16:55 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Изопропил(int32)value - преобразует только из числовых типов Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 17:00 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Изопропил(int32)value - преобразует только из числовых типов Не совсем верно. Можно перегрузить операторы преобразования и преобразовывать таким образом объекты. А класс Convert предоставляет ряд статических перегруженных функций. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 17:03 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Изопропил(int32)value - преобразует только из числовых типов Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 17:11 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 17:17 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Charles Weyland(int32)value? в данном случае это "аппаратная" хрень, которая не жрёт ресурсы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 17:18 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Charles WeylandИзопропил(int32)value - преобразует только из числовых типов Спасибо! И из объектов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 17:45 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Cat2Charles Weylandпропущено... Спасибо! И из объектов. и из разных типов ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 18:40 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
beg-in-erCharles Weyland(int32)value? в данном случае это "аппаратная" хрень, которая не жрёт ресурсы. жрёт ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 18:42 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
pationbeg-in-erпропущено... в данном случае это "аппаратная" хрень, которая не жрёт ресурсы. жрёт но немного :) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:02 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
pationжрёт да не, всё, в рамках одно машинной инструкции. а Convert естественно несколька больше Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:03 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
МСУ Код: c# 1. 2.
а это подороже Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:07 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
beg-in-erpationжрёт да не, всё, в рамках одно машинной инструкции. а Convert естественно несколька больше Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:09 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Если рассматривать в виде IL кода, то можно видеть что кастование через скобки, компилируется в инструкции которые поддерживаются напрямую средой фреймворка. Я предполагаю, что скобочный стиль был введён для реализации таких инструкций, а языки которые не поддерживают или не реализуют специализированные операторы, могут использовать вызов методов из класса Convert. Код: c# 1. 2. 3. 4. 5. 6.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:17 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
pation Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
код не работает. как бэ переполнение стека. но мысль ясна. можно хоть соединенние с БД уставновить и пароль запросить к томуже. но по сути преобразование в int это ж всем известно - аппартно подерживаемая фича для встроенных типов. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:22 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
beg-in-erно по сути преобразование в int это ж всем известно - аппартно подерживаемая фича для встроенных типов. нет ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:27 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
pationbeg-in-erно по сути преобразование в int это ж всем известно - аппартно подерживаемая фича для встроенных типов. нет а команда для преобразования типов CVTTSS2SI об этом знает, что она не является поддерживаемой на аппаратном уровне , начиная с Пня-3? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.12.2012, 19:58 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
(Int32)Value - приведение типа, в памяти есть ячейка на 4 байта, если её можно привести к числовому типу, получится Int32, если же там строка или какой то объект класса, то выйдет Exception Convert.ToInt32 - это метод конвертирования с перегрузкой, он может и из строки сделать число и из других классов, в перегрузке все указаны. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 08:22 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
beg-in-erpationпропущено... нет а команда для преобразования типов CVTTSS2SI об этом знает, что она не является поддерживаемой на аппаратном уровне , начиная с Пня-3? C# язык высокого уровня и он ничего не знает о командах процессора и пнях приведение типа - это вызов метода и не более того ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 11:38 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
pationC# язык высокого уровня и он ничего не знает о командах процессора и пнях приведение типа - это вызов метода и не более того приведение типов - самостоятельное понятие. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
и какой метод вызывается? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 11:49 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
ИзопропилpationC# язык высокого уровня и он ничего не знает о командах процессора и пнях приведение типа - это вызов метода и не более того приведение типов - самостоятельное понятие. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
и какой метод вызывается?Метод (компилятора?), выводящий текст ошибки "Cannot convert type 'A' to 'B'". Не? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 13:07 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
sphinx_mvМетод (компилятора?) а это что за кентавр? Обсудим реализацию самого компилятора? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 13:15 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Изопропилsphinx_mvМетод (компилятора?) а это что за кентавр? Обсудим реализацию самого компилятора?Вы лучше обратитесь к преобразованию родительского типа к дочернему в Вашем примере... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 13:23 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
sphinx_mv, Что такое "метод компилятора"? Чем лучше мне будет лучше обратиться " к преобразованию родительского типа к дочернему в Вашем примере..." ? Полагаешь , что я не различаю приведения вверх и вниз? Тогда ты - херовый ясновидящий ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 14:11 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Изопропили какой метод вызывается?Никакого. Но используется инструкция "castclass" которая пытается привести а к B . А если сделать всё по правильному: Код: c# 1.
То вообще никакого преобразования не происходит. (точнее, происходит, но мы его не видим) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 14:11 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
enigmatic, независимо от направления преобразования, компилятор C# порождает одну IL инструкцию castclass ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 14:13 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Изопропил, Мой рефлектор показывает иное. А именно: Код: c# 1.
эквивалентно Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 14:19 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
И ildasm с ним солидарен. Код: c# 1. 2. 3. 4.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 14:24 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
enigmaticИзопропил, Мой рефлектор показывает иное. А именно: Код: c# 1.
эквивалентно Код: c# 1.
И это - правильно. Потому что преобразование из производного типа в базовый не требуется... ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:21 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
sphinx_mv, Преобразование есть, оно неявное. Но инструкций преобразования (conv.*, castclass) нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 07:50 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
enigmaticsphinx_mv, Преобразование есть, оно неявное.Да. Был не точен... :( Имел в виду приведение типов (ака, "явное преобразование") - оно действительно не требуется... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 12:08 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Изопропилsphinx_mv, Что такое "метод компилятора"? Чем лучше мне будет лучше обратиться " к преобразованию родительского типа к дочернему в Вашем примере..." ? Полагаешь , что я не различаю приведения вверх и вниз?Я полагаю, что лучше меня по поводу явных преобразования неинициализированной переменной экземпляра базового класса в производный класс в Вашем примере выскажется компилятор (вызвав соответствующий метод вывода текста в окно сообщений/на консоль) - и примерный текст сообщения ошибки времени компиляции я предоставил. ИзопропилТогда ты - херовый ясновидящийА тут вобще нет необходимости быть каким-либо ясновидящим - просто читаем текст примера... ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 12:44 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Можно у знать почему у меня не прокатывает вот так: Код: c# 1. 2.
а приходится записывать вот так: Код: c# 1. 2.
потому что пише что: Ошибка 1 Не удается неявно преобразовать тип "object" в "int". Существует явное преобразование (возможно, пропущено приведение типов) хотя в примерах кабы пишут что вроде можно http://msdn.microsoft.com/ru-ru/library/0k5w061k.aspx ; ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 09:37 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
потому что неявно object в int преобразовать нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 09:50 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
megazoid007хотя в примерах кабы пишут что вроде можно http://msdn.microsoft.com/ru-ru/library/0k5w061k.aspx ; Ты про это что ли? Код: c# 1.
так " new value" ведь не int, а string! В примерах конкатенацию делают. Неявное преобразование из object в string (т.е. сериализация объекта) и обратно - возможна. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 09:51 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
Charles WeylandНеявное преобразование из object в string (т.е. сериализация объекта) и обратно - возможна. Сериализацей называется преобразование объекта в поток байтов для хранения или передачи с возможностью последующего восстановления копии. К преобразованию типов это никак не относится. object в string преобразуется если в нём хранится string или делается неявный вызов ToString(). В случае с rowView["CompanyName"] += " new value"; никакого преобразования нет. Компилятор всего лишь генерирует вызов метода String.Concat(). Преообразование string в object возможно т.к. существует и разрешено неявное преобразование от дочернего класса к базовому. А т.к. System.Object является базовым для всех типов в .NET, то к нему можно преобразовать что угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 11:32 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
bazile, а если я сделаю что то вроде SqlDataAdapter.FillSchema, то упрощенный (второй) вариант присваивания может сработать ? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 15:27 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
megazoid007, не вижу связи между вызовом какого-то метода и последующим присваиванием. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 16:17 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
bazile, ну эта функция настраивает схему в соответствии с источником данных, т.е. среде уже будет известно что столбец drvTemp["Код"] типа int ну и наверно приведет к нужному типу при присвоении ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 17:15 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
megazoid007, ты путаешь внутренние знания (времени исполнения) классов DataSet/DateView о типе данных в колонке с типом данных известных компилятору. Метод FillSchema будет, очевидно, выполнен во время работы программы. То есть после компиляции. Так что тип выражения drvTemp["Код"] как был object так и останется. Если тебе нужная строгая типизация на этапе компиляции, то используй типизированный DataSet или Entity Framework. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 17:57 |
|
c# преобразование типов
|
|||
---|---|---|---|
#18+
bazile, спасибо бро все понятно ... |
|||
:
Нравится:
Не нравится:
|
|||
26.07.2013, 19:55 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1404298]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
97ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
71ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 220ms |
0 / 0 |