Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
Привет! Дело в следующем. При работе с типом Variant в C++Builder можно было производить сравнение типов без явного приведения типов: Код: plaintext 1. 2. 3. 4. 5. Вопрос: как сделать такое же в C#? Пробовал прикрутить boxing, но для него обязательно явно в исходном коде преобразовывать тип: Код: plaintext 1. 2. 3. 4. 5. 6. Хотя у меня во время выполнения будут извесны 'настоящие' типы 'хранимых' данных (посредством System.Type), но все-таки хотелось бы обойтись без лишней писанины. Как быть? Заранее большое спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 13:23 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
P.S. Под "лишней писаниной" я имею в виду примерно следующее: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 13:52 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
а зачем собственно это надо? неужто не хватает функционала .Net? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 15:06 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
Это надо затем, что мне самому нужно писать классы, которые будут оперировать данными неизвествного мне (на стадии написания программы) типа. Какую функциональность .Net для этого посоветуешь? На C++ для таких случаев был тип Variant, в .Net его пока не видно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 15:27 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
Аналог (почти) варианта в C# - object. Копни в сторону рефлексии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2004, 18:29 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
Столько копий было поломано в обсуждениях преимуществ C# над VB.NET, а когда нужно ими воспользоваться про них забыли %) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 10:42 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
Столько копий было поломано в обсуждениях преимуществ C# над VB.NET, а когда нужно ими воспользоваться про них забыли %) "священные войны" <OFF> ?? Generics ?? </OFF> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 10:58 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
Ну и в догонку фича C#2.0 Genetics даже анбоксить не надо :) _________________________________________________ Легче написать не правильную программу чем понять правильную (С) Alan Perlis ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 10:58 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
авторСтолько копий было поломано в обсуждениях преимуществ C# над VB.NET, а когда нужно ими воспользоваться про них забыли % Хм... спасибо, конечно, но ты написал то же самое явное преобразование типов при сравнении "result = (int)a > (int)b", (только зашитое в оператор), что и в приведенном мною 'плохом' коде... авторC#2.0 Genetics Это что такое? в общих чертах? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 17:15 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
Ну если на сях писал то типа шаблонов... а если нет то: Generic classes are classes that aren't type specific. Instead of creating a special class for manipulating integers, and then a second class for manipulating floating point numbers, you can create one generic class that can do both. For example, the following code creates a generic class for implementing a stack. A stack is a data structure that works in a "last in, first out" manner. You use the Push method to add values onto the stack to store them, and the Pop method to retrieve them. This stack will store up to 100 items of any data type. If you are going to use this code in a real application, you need to add checks to make sure too many items are not popped or pushed, as this will cause an exception. Notice that in the stack class definition, the label between angled brackets, in this case itemtype, is a placeholder for the data type. Notice also the use of private and public — the only public parts of the Stack class are the Push and Pop methods. The items array that stores the data and the stack counter variable is hidden. This makes for safer code. Код: plaintext 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. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. _________________________________________________ Легче написать не правильную программу чем понять правильную (С) Alan Perlis ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.08.2004, 19:43 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
viperНу если на сях писал то типа шаблонов... Хех! Так это шаблоны-родимые и есть! А C# 2.0 Specification я пока не начал читать - еще только v1.2 дочитываю... Шаблоны - это, конечно, хорошо, но они в данном случае тоже малопригодны, т.к. при все свое универсальности, типы в них должны быть 'подставлены' тоже до компиляции, а у меня получается что все в RunTim'e происходит. Короче, взялся я писать класс Variant на C# на основе boxing'а... и столкнулся с интересной вещью: Как в C# реализовать "opreator="? Т.е. чтобы код: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.08.2004, 20:44 |
|
||
|
Boxing - аналог Variant?
|
|||
|---|---|---|---|
|
#18+
Ну ведь можна и динамически код посторить... с шаблонами сей процесс гораздо проще... _________________________________________________ Легче написать не правильную программу чем понять правильную (С) Alan Perlis ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.08.2004, 20:14 |
|
||
|
|

start [/forum/topic.php?fid=20&fpage=1009&tid=1438510]: |
0ms |
get settings: |
9ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
32ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 381ms |

| 0 / 0 |
