|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
Подскажите. Мне необходимо из строки, создавать объекты разных базовых типов (int, DateTime и прочие). Использую для этого метод Convert.ChangeType return Convert.ChangeType(StringToConvert, TypeConvertTo); Функция возвращает тип Object. Но под этим object'ом скрываются строго типизированные значения. Далее в приложении идет нормальная работа с полученными данными, в соответствии с их конкретным типомтипом. Проблема. Мне необходимо обрабатывать ситуацию, когда в строке будет пустота. Это нормальная ситуация. Мне нужно лишь вернуть default(). Но дефаулт работает только с генериками. А у меня нет генериков. Подскажите выход. Понимаю, что можно вручную написать switch и вручную все закодировать: если int, вернуть 0 и т.д. Но наверняка уже есть велосипед для этого. Подскажите пожалуйста код велосипеда. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 21:01 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
StringToConvert имеет тип object Т.е object StringToConvert = GetValueInString; ... Convert.ChangeType(StringToConvert, TypeConvertTo) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 21:12 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
Код возможно будет, как только вы напишете сигнатуру метода... того что return Convert.ChangeType(StringToConvert, TypeConvertTo) И объясните что за беда с генериками и как он (метод) будет использоваться... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 21:15 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
LINQStudent, можно обложить вашу идею дженериками. сделать расширение для string Код: c# 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 21:22 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
How to make a Generic Type Cast function ну и добавить проверку... ежли валуе тайп - тоды default()... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 21:26 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
Это свой лисапед недосериализатор. Пишу прямо сейчас. Пока получается полная чушь... Нужно вытащить данные из XML и вернуть их в типизированном формате. Т.е. прочитать из атрибута какой там тип у поля, и конвертнуть его (для того и решил использовать Convert.ChangeType) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 21:39 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
Спасибо за ответы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 21:39 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
LINQStudent, тогда перепишем расширение )) Код: c# 1. 2. 3. 4. 5. 6. 7.
только тип в атрибутах надо указывать без сленга.. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 22:18 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
наверное более правильно if (string.IsNullOrEmpty(str)) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.07.2013, 22:21 |
|
deault только для генериков? А как сгенерировать "умолчание", если тип передается строкой?
|
|||
---|---|---|---|
#18+
Где-то в степи, Спасибо большое. Ваше решение сработало. Я не знал про Активатор. Знания приходят с опытом, это понятно. Я не знал про Активатор, а только про Дефаулт. В этом польза форума ! ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2013, 13:53 |
|
|
start [/forum/topic.php?fid=20&msg=38341394&tid=1404321]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 15ms |
total: | 168ms |
0 / 0 |