- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
/// Разрезать строку на части длиной не более maxRecordLen
private static void splitText(ref List<string> splitTextArray, string text) {
splitTextArray = new List<string>();
for (; ; ) {
try {
string str = text.Substring(0, maxRecordLen);
splitTextArray.Add(str);
try {
text = text.Substring(maxRecordLen);
}
catch (Exception) {
break;
}
}
catch (Exception) {
splitTextArray.Add(text);
break;
}
}
}
Lokich 17.07.2013 16:45 # 0
bormand 17.07.2013 18:28 # 0
anonimb84a2f6fd141 17.07.2013 18:33 # −3
Блядь, нечисть с сишки пришла. Запретить бы нахуй byref, зачем он вообще нужен?
bormand 17.07.2013 18:35 # +7
А вот хуй, вот такое говно ваяют: Так что не в рефе дело, а в тех, кто юзает его без повода.
Тут что-то похожее на ситуацию с goto в сишке - если все время юзать, получится лапша, но если в меру, то от него только профит.
P.S. Я ни в коем случае не оправдываю ref в данной ситуации. Тут однозначно надо было возвращать этот список через return.
Lokich 18.07.2013 09:47 # 0
TauSigma 18.07.2013 10:02 # 0
А то так ненароком можно и пропустить инициализацию в блоке catch {...}
bormand 18.07.2013 10:14 # 0
В данном случае можно инкапсулировать обе даты в какой-нибудь DateRange, и снабдить его необходимыми методами - проверку на вхождение даты в диапазон и т.п. Код станет понятней и чище. :) И так почти всегда...
Случаев, когда действительно необходимо вернуть 2 объекта не так уж много.
P.S. А показывать сообщения в ParseЧтоНибудь это какой-то пиздец, простите.
Lokich 18.07.2013 10:54 # 0
Это ODS для ASP.NET грида, в котором и так все поля по полочкам лежат :) просто, я передаю в этот метод два этих поля. А после этого поля в хранимую процедуру.
>P.S. А показывать сообщения в ParseЧтоНибудь это какой-то пиздец, простите.
сообщения показываются не в Parse. у пользователя появляется всплывающее уведомление, если он не стал пользоваться jQuery DatePicker'ом, и решил руками вписать даты - ему будет показано сообщение, что эти даты не удалось распарсить.
или я неправильно понял суть проблемы? =)
diimdeep 18.07.2013 10:15 # +2
bormand 18.07.2013 10:21 # 0
+1
Если уж диапазон дат парсят, то скорее всего и передавать его потом будут в кучу мест, и проверять даты на вхождение в него, проверять интервалы на пересечение... И объект уберет кучу сопутствующего этим действиям говнокода.
TauSigma 18.07.2013 10:53 # 0
Но в этом коде лучше всётаки через Boolean. Т.к. при ошибки парса что-то делается с UI.
Lokich 18.07.2013 11:38 # 0