- 1
- 2
- 3
- 4
- 5
- 6
public static class IntExtension
{
public static int NotMoreThan(this int i, int thanWhat){
return i < thanWhat ? thanWhat : i;
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+942
public static class IntExtension
{
public static int NotMoreThan(this int i, int thanWhat){
return i < thanWhat ? thanWhat : i;
}
}
непонятно что
+144
public string[] razborstroki(string str)
{
string[] array = new string[100];
int j = 0;
for (int i = 0; i < str.Length; i++)
{
if (str[i] != ';')
array[j] += str[i];
else
j++;
}
return array;
}
Обнаружил недавно в одном из переданных нам проектов. Правильно, у нас будет свой split с маджонгом и гейшами!!!!
+147
public static void Unsubscribe
<
T1, T2, T3, T4,
T5, T6, T7, T8,
T9, T10, T11, T12,
T13, T14, T15, T16
>
(
TKey eventKey,
Action
<
T1, T2, T3, T4,
T5, T6, T7, T8,
T9, T10, T11, T12,
T13, T14, T15, T16
> handler
)
{ handlers[eventKey] -= handler; }
Боль.
+142
public List<MainTZInfoVO> GetMyJobs(bool flag1, bool flag2, bool flag3, bool flag4, string date1, string date2)
{
List<MainTZInfoVO> ulist = new List<MainTZInfoVO>(); // список заданий пользователя
string sIdUser = usr.GetUserOrAssistansID().ToString(); // ID пользователя
//выданы мне задания
string sql1 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '1' as NOT_RECEIVED from tz_all_jobs where (trim(id_ispol) like '%,'||'" + sIdUser + "'||',%' or trim(id_ispol) like '" + sIdUser + "'||',%') and (status='Выдано' or status = 'Отклонено частично') and nvl(id_prin,' ') not like '%,'||'" + sIdUser + "'||',%' and nvl(id_prin,' ') not like '" + sIdUser + "'||',%' and nvl(id_otkl,' ') not like '%,'||'" + sIdUser + "'||',%' and nvl(id_otkl,' ') not like '" + sIdUser + "'||',%'";
//принятые мной, не рассмотренные другими
string sql2 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '0' as NOT_RECEIVED from tz_all_jobs where (status='Выдано' or status = 'Отклонено частично') and (nvl(id_prin,' ') like '%,'||'" + sIdUser + "'||',%' or nvl(id_prin,' ') like '" + sIdUser + "'||',%' or nvl(id_otkl,' ') like '%,'||'" + sIdUser + "'||',%' or nvl(id_otkl,' ') like '" + sIdUser + "'||',%')";
//выданные мне в статусе отклонено
string sql3 = "select ID_TZ as ID, DATE_VYD, DESCR, SODER, STATUS||' '||CASE WHEN NVL(LAST_TZ,'0')=1 THEN chr(10)||' !Последнее' END as STATUS, '2' as NOT_RECEIVED from tz_all_jobs where (id_ispol like '%,'||'" + sIdUser + "'||',%' or id_ispol like '" + sIdUser + "'||',%') and (status='Отклонено' or status='Аннулировано')";
//ограничение по дате
string sql4 = "date_vyd between to_date('" + date1 + "','DD.MM.YYYY') and to_date('" + date2 + "','DD.MM.YYYY')";
string sql = " ";
//формируем sql-ку по флажкам, которые передаем в функцию
if (flag1 == true)
{
sql = sql1;
}
if (flag2 == true)
{
if (sql.Length > 1)
{
sql = sql + " union " + sql2;
}
else
{
sql = sql2;
}
}
if (flag3 == true)
{
if (sql.Length > 1)
{
sql = sql + " union " + sql3;
}
else
{
sql = sql3;
}
}
if ((flag4 == true) & (sql.Length > 1))
{
sql = "select * from (" + sql + ") tabl where " + sql4;
}
sql = sql + " order by date_vyd desc";
OracleCommand cmd = new OracleCommand(sql, connection);
OracleDataReader reader = cmd.ExecuteReader();
//ТУТ ПЕРЕДЕЛАТЬ ВСЕ
/*заполнение полей из ридера*/
while (reader.Read())
{
//...
}
return ulist;
}
в этом коде прекрасно все (имена и типы переменных, жестокое обращение с датами, чуть менее жестокое обращения с "флажками", соединение с Ораклом, которое открывается где-то за пределами вселенной и не закрывается нигде, и еще много всего)...
дочитав этот шедевр до строчки //ТУТ ПЕРЕДЕЛАТЬ ВСЕ, просто невозможно не прослезиться...
+943
таблица.ячейки.Where(ячейка => ячейка.выбрана).ToList().ForEach(ячейчка => ячейчка.ОчиститьЗначение());
Похоже, у автора сама цель усложнить понимание кода и использовать LINQ. Я бы написал так:
foreach (var ячейка in таблица)
if (ячейка.выбрана)
ячейчка.ОчиститьЗначение();
+937
public DataTable GetAllVideoDevice()
{
DataTable dt = DbUtil.GetData("SELECT VideoUrlId,VideoUrlName FROM VideoUrl");
return dt;
}
public int GetVideoDeviceCount()
{
int i = 0;
DataTable dt = GetAllVideoDevice();
if (dt.Rows.Count > 0) return dt.Rows.Count;
else return i;
}
У меня будут свои нули с блекджеком и шлюхами
+144
public int[] GetIntVideoAll(int videoCount)
{
List<int> listOfIntsVideo = new List<int>();
for (int i = 0; i < videoCount; i++)
{
listOfIntsVideo.Add(i);
}
return listOfIntsVideo.ToArray();
}
foreach (int item in mediaServ.GetIntVideoAll(videoCount))
{ ........}
Вот так вот. Такие жемчужины встречаются с частотой примерно раз в 10 минут в коде одного проекта который я переписываю.
+145
try
{
if (!InitConnectionString())
throw new Exception("Не инициализирована строка подключения");
oraConnection.Open();
// еще какой-то код, в котором тоже может быть исключение
}
catch
{
// запись в лог сообщения об ошибке
oraConnection.Close();
oraConnection.Open();
OracleConnection.ClearPool(oraConnection);
}
так с OracleConnection еще никто не обращался((
+890
Int64 iObjectId;
public Int64 ObjectId
{
get { return iObjectId; }
set {
if (iObjectId == null) { value = 0; } else value = iObjectId;
}
}
Помимо того, что условие (iObjectId == null) никогда не выполняется, сеттер еще и делает свойство ObjectId фактически readonly.
(Авторское форматирование кода сохранено.)
+130
// Заполняем датагрид
var q = from i in currentData select new { i.IDRFData, i.IDRowData, i.Description, i.SumVal };
dgMain.DataContext = q.ToList();
// Получаем оттуда выделенный элемент
object DR = dgMain.SelectedValue;
var TypedData = Cast(DR, new
{
IDRFData = default(Guid),
IDRowData = default(Guid),
Description = default(string),
SumVal = default(double),
});
// Кстати, функция Cast делает следующее:
public static T Cast<T>(object obj, T type)
{
return (T)obj;
}
Это извращение сделано вместо того, чтобы просто создать отдельный класс для записи датагрида.
Я даже не представляю, в каком состоянии надо быть, чтобы такое написать.