- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
public static class GlobalFunc
{
// bla-bla-bla ...
public static bool isDouble(string input)
{
Double dec;
return Double.TryParse(input, out dec);
}
public static bool isUShort(string input)
{
ushort dec;
return ushort.TryParse(input, out dec);
}
public static bool isShort(string input)
{
short dec;
return short.TryParse(input, out dec);
}
public static bool IsDate(string input)
{
DateTime date;
return DateTime.TryParse(input, out date);
}
}
TauSigma 26.08.2014 18:57 # −1
Ну и пнуть Enum.Parse на всякий случай:
А дабы не дропнуть производительность на рефлексии, засунуть все енумы в Hashtable для текущего домена:
public abstract class Enum { private static Hashtable fieldInfoHash = Hashtable.Synchronized(new Hashtable()); }
kegdan 27.08.2014 18:57 # +1
TauSigma 27.08.2014 21:51 # 0
http://referencesource.microsoft.com/#mscorlib/system/enum.cs#372
Поэтому и приходится ещё и Enum.IsDefined использовать, чтобы вот на такое говно не нарваться:
Либо использовать более шустрый вариант, но с затруднениями с дальнейшим развитием:
kegdan 27.08.2014 22:27 # 0
TauSigma 27.08.2014 23:00 # 0
kegdan 27.08.2014 23:04 # 0
)
TauSigma 27.08.2014 23:42 # 0
В таком случае, лучше заранее построить словарик с MemberInfo по каждому методу Parse, дабы каждый раз не искать его через рефлексию.
Да и Parse выбросит исключение, а не успех операции, как это происходит у ТС.
Тут ещё пришла идейка унификации такой фигни:
Т.е. стандартный подход выглядит так (Специально Value и explicit cast в лямбде сделал):
Тут есть 2 проблемы:
1) String.Split возвращает сразу Array (Код внутри особыми изысками не отличается)
2) Код сложно загнать под генерики. Т.к. либо использование рефлексии, либо городить отдельный статик метод с "if(Type) {}".
... Хотя, на вскидку, вроде всё более-менее сходится...
Надо будет завтра попробовать на производительность потестировать...
guest 28.01.2017 14:57 # 0
guest 21.01.2017 16:59 # 0
kegdan 27.08.2014 19:19 # +1
TauSigma 28.08.2014 10:59 # 0
http://govnokod.ru/7004#comment176509
kegdan 28.08.2014 13:08 # 0
guest 17.01.2017 18:21 # 0
guest 28.01.2017 15:45 # 0
inkanus-gray 28.01.2017 19:06 # +1
guest 15.04.2017 01:34 # 0