|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
Есть обобщенный класс парсер Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Есть также список системных типов Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Ну вот собственно и проблема как можна сделать вот такое Работает Код: c# 1.
Не работает Код: c# 1.
То есть идея в том что бы в парсер можна было передавать тип данных через функцию а не вписывать вручную Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 11:50 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
VIT2708, ну есть же проще, без делегатов, и принято во всем мире по дефолту Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 12:29 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
Где-то в степи, блин ну зачем тогда вообще Дженерики?передавайте объекте, дергайте его TYpe и дальше пытайтесь дергнуть метод. Помойму надо сделать where T:ITryParse... ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 12:39 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
VIT2708Есть обобщенный класс парсер Не работает Код: c# 1.
У System.Type нет метода TryParse Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 12:40 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
Где-то в степиVIT2708, ну есть же проще, без делегатов, и принято во всем мире по дефолту Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
А можете привести пример что вместо T передавать? допустим есть класс Код: c# 1. 2. 3. 4. 5. 6.
И вот если перебитать коллекцию класса Test Код: c# 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 12:45 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
ЕвгенийВVIT2708Есть обобщенный класс парсер Не работает Код: c# 1.
У System.Type нет метода TryParse Спасибо. Я понял, и как это решить другим способом что бы можна было в одном методе вызывать проверку TryParse для int, Int16, Int32, Int64, Float, Double, Decimal? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 12:49 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
VIT2708, стандартный класс System.Convert не подойдёт? Например: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 13:17 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
Не дописал. Вместо типа можно передавать параметр перечисления TypeCode (и не нужно вручную выписывать типы). ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 13:19 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
petalvikНе дописал. Вместо типа можно передавать параметр перечисления TypeCode (и не нужно вручную выписывать типы). Я думал над этим, и как это мне поможет мне надо вместо Т передать тип но этот тип данных должен определить статистический метод static T Parse<FindType("System.Int32")>("параметры") static Int16 или Int32 ... FindType(string type) { // код } Как "впихнуть" то что выделено красным в Parse? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 13:28 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
VIT2708static T Parse<FindType("System.Int32")>("параметры") Если так уж хочется использовать именно строку как параметр, то так: Код: c# 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 13:40 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
VIT2708, в Generic это можно "впихнуть" только через рефлексию (мб еще Emit) примерно так: Код: c# 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 14:33 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
еще как вариант: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 15:49 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
VIT2708 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
А в чем смысл этого? Почему просто не написать return Type.GetType(type), без всяких свичей? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 16:48 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
Arm79VIT2708 Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
А в чем смысл этого? Почему просто не написать return Type.GetType(type), без всяких свичей? Вот в этом Код: c# 1. 2. 3.
Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
Если подскажите вариант лучше, буду очень благодарен ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 17:17 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
VIT2708, Ни фига не понятно. 1) Зачем вам явное перечисление типов? 2) Пример с параметрами ХП немного смущает. Вы не знаете, какого типа параметры и какие значения вы передаете? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.04.2014, 17:30 |
|
Парсер для System.Type
|
|||
---|---|---|---|
#18+
Там и без вас справятся: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2014, 02:27 |
|
|
start [/forum/topic.php?fid=20&msg=38624845&tid=1402988]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 148ms |
0 / 0 |