- 1
- 2
- 3
- 4
- 5
- 6
- 7
public class BillingService : Handles<NewDayHasComeInMoscow>
{
public void When(NewDayHasComeInMoscow ev)
{
// ...
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+120
public class BillingService : Handles<NewDayHasComeInMoscow>
{
public void When(NewDayHasComeInMoscow ev)
{
// ...
}
}
+141
private void tlistObject_SelectedIndexChanged(object sender, EventArgs e)
{
IMapObject oTarget = this.tlistObjects.SelectedItem as IMapObject;
if (oTarget != null)
{
if (this.SelectedObject != null)
{
this.SelectedObject.ObjectMode = ObjectModeElements.None;
}
this.SelectedObject = this.tlistObjects.SelectedItem as IMapObject;
this.SelectedObject.ObjectMode = ObjectModeElements.Selected;
}
}
(Is + Explicit приведение) или (As + проверка на Null)?
Ход конём.
ОБЯЗАТЕЛЬНОЕ использование this при обращении к полям, свойствам и методам текущего класса - отдельная тема. Это одна из особенностей неповторимого стиля, присущего аффтару. Весь код забит thisами под завязку.
+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;
+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 = "Только кэш"; ....
+126
if ((e.Row.Cells[0].Text.Trim() != "") && (e.Row.Cells[0].Text.Trim().ToUpper() != "NULL".Trim().ToUpper()))
Indian style
Проверка ячейки таблицы на null
+121
class Program
{
static bool v1;
static bool v2;
static bool v3;
static bool v4;
//...
static void Main()
{
getValues();
if (v1)
{ }
else
{
//Делаем раз
}
if (v2)
{ }
else
{
//Делаем два
}
if (v3)
{ }
else
{
//Делаем три
}
if (v4)
{ }
else
{
//Делаем три с половиной
}
}
static void getValues()
{
//Булевым переменным присваиваются значения из БД
}
}
Один из студентов усердно выдавал такие конструкции. Логическое отрицание? Не, не слышал...
+120
Stream outS = resp.GetResponseStream();
List<byte> bb = new List<byte>();
while(true)
{
int dd = outS.ReadByte();
if (dd == -1)
break;
bb.Add((byte) dd);
}
byte[] outB = new byte[bb.Count];
bb.CopyTo(outB);
string ss = Encoding.ASCII.GetString(outB);
Чтение потока HttpWebResponse в строку.