- 1
- 2
- 3
- 4
- 5
#if defined( HPUX_11_31 )
#define BDYNAMIC_CAST( CLASS, OBJECT ) (( CLASS ) ( OBJECT ))
#else
#define BDYNAMIC_CAST( CLASS, OBJECT ) (dynamic_cast< CLASS >(( OBJECT )))
#endif
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+1007
#if defined( HPUX_11_31 )
#define BDYNAMIC_CAST( CLASS, OBJECT ) (( CLASS ) ( OBJECT ))
#else
#define BDYNAMIC_CAST( CLASS, OBJECT ) (dynamic_cast< CLASS >(( OBJECT )))
#endif
чуть кофе не похлебнулся.
при более детальном рассмотрении кода из-за которого это сделали, выяснилось что: (А) в проекте нет ни одного места где нужен динамик каст и (Б) половина наших С++ профисианалов не умеют пользоватся конст кастом (который по коду там и был им нужен, вместе со статик кастом).
+971
using System;
public class Man
{
static int num;
public Man parent = new Man(); //У каждого человека есть родители, ведь так?
static Man()
{
num = 0;
}
public Man()
{
num++;
}
}
Компилятор C# против перенаселения, вовремя выдаёт StackOverflowException, пока расплодиться не успели..
+115
switch (pList)
{
#region Формы контейнера |
case TObjects.ContainerForm :
frmList = new TfrmContainerForm();
pnlMain = ((TfrmContainerForm)frmList).pnlMain;
Result = ((TfrmContainerForm)frmList).grList;
break;
#endregion
#region Тип контейнера |
case TObjects.ContainerType :
frmList = new TfrmContainerType();
pnlMain = ((TfrmContainerType)frmList).pnlMain;
Result = ((TfrmContainerType)frmList).grList;
break;
#endregion
#region Объект НВАЭС |
case TObjects.Object :
frmList = new TfrmObjects();
pnlMain = ((TfrmObjects)frmList).pnlMain;
Result = ((TfrmObjects)frmList).grList;
break;
#endregion
#region Исполнитель работ |
case TObjects.DepSource :
frmList = new TfrmDepSource();
pnlMain = ((TfrmDepSource)frmList).pnlMain;
Result = ((TfrmDepSource)frmList).grList;
break;
#endregion
#region Установка переработки |
case TObjects.TreatSet :
frmList = new TfrmTreatSet();
pnlMain = ((TfrmTreatSet)frmList).pnlMain;
Result = ((TfrmTreatSet)frmList).grList;
break;
#endregion
#region Контейнер |
case TObjects.Container :
frmList = new TfrmContainer();
pnlMain = ((TfrmContainer)frmList).pnlMain;
Result = ((TfrmContainer)frmList).grList;
break;
#endregion
#region Хранилище |
case TObjects.Storage :
frmList = new TfrmStorage();
pnlMain = ((TfrmStorage)frmList).pnlMain;
Result = ((TfrmStorage)frmList).grList;
break;
#endregion
...
А тут ок. 400 таких вот строк.
+119
public static string LoadGridDT (TObjects pList, out DataTable Dt, params object[] pArgs)
...
switch (pList)
{
case TObjects.Radio :
if (pArgs.Length == 1 && pArgs[0] is int)
vLoadResult = Protocol.Radionuclide.Load((int)pArgs[0], out Dt);
else if (pArgs.Length > 1 && pArgs[0] is int && pArgs[1] is bool)
vLoadResult = Part2.Radionuclide.Load((int)pArgs[0], out Dt);
else vLoadResult = Radionuclide.Load(out Dt);
break;
case TObjects.Protocol :
// [0](int): Тип протокола; [1](int): Очередь; [2](bool): Активность; [3](int): Объект
if (pArgs.Length > 3 && pArgs[0] is int && pArgs[1] is int && pArgs[2] is bool && pArgs[3] is int)
if (pArgs.Length > 4 && pArgs[4] is int)
vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt, (int)pArgs[4]);
else
{
if (pArgs.Length > 4 && pArgs[4] is bool && (bool)pArgs[4] == true) // 5-й аргумент для загрузки детализированного списка протоколов с учетом объекта отбора
vLoadResult = Protocol.Load((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt);
else // недетализированный список протоколов с учетом объекта отбора
vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (int)pArgs[3], (bool)pArgs[2], out Dt);
}
else
// [0](List<int>): Типы протокола; [1](int): Очередь; [2](int): Id место отбора; [3](bool): Активность
if (pArgs.Length > 3 && pArgs[0] is List<int> && pArgs[1] is int && pArgs[2] is int && pArgs[3] is bool)
if (pArgs.Length > 4 && pArgs[4] is int)
vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (int)pArgs[2], (bool)pArgs[3], out Dt, (int)pArgs[4]);
else
vLoadResult = Protocol.Load((List<int>)pArgs[0], (int)pArgs[1], (int)pArgs[2], (bool)pArgs[3], out Dt);
else
// [0](List<int>): Типы протокола; [1](int): Очередь; [2](bool): Активность
if (pArgs.Length > 2 && pArgs[0] is List<int> && pArgs[1] is int && pArgs[2] is bool)
if (pArgs.Length > 3 && pArgs[3] is int)
vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt, (int)pArgs[3]);
else
vLoadResult = Protocol.LoadList((List<int>)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt);
else
// [0](int): Тип протокола; [1](int): Очередь; [2](bool): Активность;
if (pArgs.Length > 2 && pArgs[0] is int && pArgs[1] is int && pArgs[2] is bool)
if (pArgs.Length > 4 && pArgs[3] is bool && pArgs[4] is int)
vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt, (int)pArgs[4]);
else
vLoadResult = Protocol.Load((int)pArgs[0], (int)pArgs[1], (bool)pArgs[2], out Dt);
else
// [0](int): Тип протокола; [1](int): Очередь
if (pArgs.Length > 1 && pArgs[0] is int && pArgs[1] is int)
if (pArgs.Length > 2 && pArgs[2] is int)
vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], out Dt, (int)pArgs[2]);
else
vLoadResult = Protocol.LoadList((int)pArgs[0], (int)pArgs[1], out Dt);
else
...
Метод 500+ вот такого рода строк...
+123
pOutGrid = pTab != null ?
pTab.SelectedTab != null ?
pTab.SelectedTab.Tag is GridEX ?
(GridEX)pTab.SelectedTab.Tag :
pTab.SelectedTab.Tag is TObject ?
((TObject)pTab.SelectedTab.Tag).ViewForm != null ?
((TObject)pTab.SelectedTab.Tag).ViewForm.GridEX != null ?
((TObject)pTab.SelectedTab.Tag).ViewForm.GridEX : pGrid : pGrid : pGrid
: pGrid : pGrid;
+146
function readReverseCrypt(){
if (!cryptStr) return END_OF_INPUT;
while (true){
if (cryptCount >= cryptStr.length) return END_OF_INPUT;
var nextCharacter = cryptStr.charAt(cryptCount);
cryptCount++;
if (rbc[nextCharacter]){
return rbc[nextCharacter];
}
if (nextCharacter == 'A') return 0;
}
return END_OF_INPUT;
}
Выйдем из цикла только выйдя из функции. Строка 13 на всякий случай.
// из одной соц сети с 25 миллионами пользователей
+117
/// <summary>
/// Преобразование элемента перечисления в строку
/// </summary>
private String GetEnumElementString(Object e, Type t)
{
string result = string.Empty;
if (t == typeof(AccessMode))
{
if ((AccessMode)e == AccessMode.CacheOnly)
{
result = LocalStrings.AccessMode_CacheOnly_RU;
}
else if ((AccessMode)e == AccessMode.ServerOnly)
{
result = LocalStrings.AccessMode_ServerOnly_RU;
}
else if ((AccessMode)e == AccessMode.ServerAndCache)
{
result = LocalStrings.AccessMode_ServerAndCache_RU;
}
else
{
throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
}
}
else if (t == typeof(MapImageType))
{
if ((MapImageType)e == MapImageType.Map)
{
result = LocalStrings.MapImageType_Map_RU;
}
else if ((MapImageType)e == MapImageType.Satellite)
{
result = LocalStrings.MapImageType_Sattelite_RU;
}
else if ((MapImageType)e == MapImageType.Hybrid)
{
result = LocalStrings.MapImageType_Hybrid_RU;
}
else
{
throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
}
}
else
{
throw new Exception(string.Format("Отсутствует конвертация перечисления {0} к списку строк.", e));
}
return result;
}
Конвертация Enum в строку. Аффтар уникален, и это лишь одно из проявлений его уникальности.
Swith - для трусов, статические тулзы и Extension - для дураков. У нас для этого будут методы классов, между прочим класс, в который входит этот метод - UserControl.
Кстати, поля LocalStrings - не константы, а статика:
public static string AccessMode_CacheOnly_RU = "Только кэш"; ....
+153
QSqlQuery* query = new QSqlQuery(db2);
QDate curDate = QDate::currentDate();
query->prepare("select id,custom,actual0,actual1,division,fili,author,dogo,sumo_dogo,sumo_proshe,sumo_penis,sumo_shtrafa,state,mark,anka from clbalance where actual0 <= ? and actual1 > ?");
query->addBindValue(QDate::currentDate().addDays(-1));
query->addBindValue(QDate::currentDate().addDays(-1));
А вдруг дата уже изменилась ?)
Отдельно доставляют названия столбцов.
+148
http://digest.subscribe.ru/inet/review/n763622828.html
Статья прелесть. document.write() в наше-то время...
+127
Lab1
s x(2,2)=1
s x(2,2,9)=0
s y(3,6,7)=3
s y(3,6,8)=4
s y(3,6,7,8,4)=5
s y(3,6,7,8,9)=6
m x(2,2)=y(3,6,7,8)
d Out("x(2,2)")
Out(l)
i $d(l)#10{
i l
w l_" =",?15,@l,!
i $d(@l)\10{
f {
s c=$q(@l,1)
q:c=""
d Out(c)
k @c
}
}
q
}
Вот так в Cache Object Script можно вывести ветку многомерного массива....