- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
public void UpdateCollection()
{
object l = new object();
lock (l)
{
// Обновляем коллекцию
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+110
public void UpdateCollection()
{
object l = new object();
lock (l)
{
// Обновляем коллекцию
}
}
Эксклюзивная блокировка в действии
+126
try
{
var ticketInfo =
WebServicesRepository.XLoginInstance.XLoginTicketHandler(ticket.Ticket);
if (!(ticketInfo.Errors.Length > 0))
FormsAuthenticationUtility.SetAuthCookie(ticketInfo.UserID, ticketInfo.UserLogin, ticketInfo.UserPassword, ticketInfo.Email, false);
var profile =
AccountRepository.GetUserProfile(ticketInfo.Email, ticketInfo.UserPassword) ?? null;
var authForm =
new AuthenticateForm()
{
Login = profile.Login,
Password = profile.Password,
IsPersistent = true
};
AccountRepository.SignIn(authForm, ref errors);
}
catch(Exception e)
{
log.Error("Автоматическая авторизация", e);
};
Наговнокодил на Asp.net )
+136
protected Boolean GetStatus(VinRequestStatusId statusId, Int16 id)
{
if(statusId == VinRequestStatusId.CarDataNeeded && id == 0)
return true;
if(statusId == VinRequestStatusId.WaitingClientAnswer && id == 1)
return true;
return false;
}
Разработчику гуя лень было лезть в DAL. Наложил прямо на форме.
+132
public static string[] GetLogicalDrives()
{
// System.Environment.GetLogicalDrives()
new EnvironmentPermission(PermissionState.Unrestricted).Demand();
// System.IO.Directory.GetLogicalDrives()
new SecurityPermission(SecurityPermissionFlag.UnmanagedCode).Demand();
int logicalDrives = Win32Native.GetLogicalDrives();
if (logicalDrives == 0)
{
__Error.WinIOError();
}
uint num = (uint)logicalDrives;
int num2 = 0;
while (num != 0u)
{
if ((num & 1u) != 0u)
{
num2++;
}
num >>= 1;
}
string[] array = new string[num2];
char[] array2 = new char[]
{
'A',
':',
'\\'
};
num = (uint)logicalDrives;
num2 = 0;
while (num != 0u)
{
if ((num & 1u) != 0u)
{
array[num2++] = new string(array2);
}
num >>= 1;
char[] expr_6E_cp_0 = array2;
int expr_6E_cp_1 = 0;
expr_6E_cp_0[expr_6E_cp_1] += '\u0001';
}
return array;
}
Копался сегодня в дебрях .NET'а и нашёл 2 метода получения списка дисков:
System.Environment.GetLogicalDrives() и System.IO.Directory.GetLogicalDrives()
Различается код только первой срокой запроса разрешений.
Если один метод устарел-бы, то можно было его форварднуть через атрибут TypeForwardedTo.
Или хотя-бы объединить код вынеся запрос разрешений.
Оба метода доступны ещё с .NET 1.1. Но вот класс DriveInfo, который появился только в .NET 2.0 использует метод Directory.GetLogicalDrives()
Это такая "фича" с копипастом кода или тут есть какой-то сакральный смысл?
+133
private bool IsSubscriptionFree()
{
try
{
if (AccountManager.CurrentManager.CurrentSubscription != null)
{
if (AccountManager.CurrentManager.CurrentSubscription.IsValid)
{
if (AccountManager.CurrentManager.CurrentSubscription.Name.ToLower().Contains("free") ||
AccountManager.CurrentManager.CurrentSubscription.Name.ToLower().Contains("trial")
)
{
return true;
}
}
return false;
}
return false;
}
catch (Exception)
{
return false;
}
}
+140
innotracOrder.OrderShipTo = new PostOrderBatchRequestOrderBatchCustomerOrderOrderShipTo[] { innotracShipTo };
var innotracPayment = new PostOrderBatchRequestOrderBatchCustomerOrderPayment();
var innotracCreditCard = new PostOrderBatchRequestOrderBatchCustomerOrderPaymentCreditCard();
Код древних ацтеков
+129
static string BuildPostData(IDictionary<string, string> d)
{
var s = "";
for (var i = 0; i < d.Count; i++)
{
var item = d.ElementAt(i);
var key = item.Key;
var val = item.Value;
s += String.Format("{0}={1}", key, HttpUtility.UrlEncode(val));
if (i != d.Count - 1)
s += "&";
}
return s;
}
Встретил вот такое.... переписал кодом ниже. Меньше мусора и работает намного быстрее.
static string BuildPostData(IEnumerable<KeyValuePair<s tring, string>> d)
{
return string.Join("&", d.Select(i => string.Format(CultureProvider.Common, "{0}={1}", i.Key, HttpUtility.UrlEncode(i.Value))));
}
+134
while (true)
{
try
{
MapControlStatic.Remove(MapControlStatic.First(o => o.Value.thisControl == c).Key);
}
catch
{
break;
}
}
while (true)
{
try
{
MapControlStatic.Remove(MapControlStatic.First(o => o.Value.Childs.Contains(c)).Key);
}
catch
{
break;
}
}
+133
int sum = 100;
int sch = 0;
for (int a50 = 0; a50 <= sum / 50; a50++)
{
for (int a25 = 0; a25 <= (sum - a50 * 50) / 25; a25++)
{
for (int a10 = 0; a10 <= (sum - a50 * 50 - a25 * 25) / 10; a10++)
{
for (int a5 = 0; a5 <= (sum - a50 * 50 - a25 * 25 - a10 * 10) / 5; a5++)
{
sch++;
}
}
}
}
Console.WriteLine(Convert.ToString(sch));
Задача: Подсчитайте сколькими способами можно разменять 1 доллар монетами достоинством 1, 5, 10, 25 и 50 центов. Решать можно как угодно - в лоб перебором, или в общем случае (для произвольной суммы размера и набора монет).
У кого какие варианты еще будут?)
+128
Block oneBlock = null;
for (int i = 0; i < this.ChildrenCount; i++)
{
Block block = this.GetChild(i);
if (!(block is PlaceToAddBlock)) //это проверка имеет ли объект тип PlaceToAddBlock
{
if (oneBlock == null)
{
oneBlock = block;
}
else
{
oneBlock = null;
break;
}
}
}
if (oneBlock != null)
{
return null;
}
Проверяем, нет ли, случаем, в коллекции двух объектов, не относящихся к классу PlaceToAddBlock