How do I get a human-readable file size in bytes abbreviation using .NET?

This may not the most efficient or optimized way to do it, but it’s easier to read if you are not familiar with log maths, and should be fast enough for most scenarios. string[] sizes = { “B”, “KB”, “MB”, “GB”, “TB” }; double len = new FileInfo(filename).Length; int order = 0; while (len >= … Read more

Visual Studio jump to next error shortcut?

F8 (and Shift+F8 to go backwards). Or at least that’s what it is in my keyboard profile – you can go to tools\options\environment\keyboard and check out Edit.GoToNextLocation. Note If you configured Visual Studio using VB keyboard settings, no key has been assigned to this function. You need to pick your own and assign them.

Difference in months between two dates

Assuming the day of the month is irrelevant (i.e. the diff between 2011.1.1 and 2010.12.31 is 1), with date1 > date2 giving a positive value and date2 > date1 a negative value ((date1.Year – date2.Year) * 12) + date1.Month – date2.Month Or, assuming you want an approximate number of ‘average months’ between the two dates, … Read more

What is the best workaround for the WCF client `using` block issue?

Actually, although I blogged (see Luke’s answer), I think this is better than my IDisposable wrapper. Typical code: Service<IOrderService>.Use(orderService=> { orderService.PlaceOrder(request); }); (edit per comments) Since Use returns void, the easiest way to handle return values is via a captured variable: int newOrderId = 0; // need a value for definite assignment Service<IOrderService>.Use(orderService=> { newOrderId … Read more

When should I use a List vs a LinkedList

In most cases, List<T> is more useful. LinkedList<T> will have less cost when adding/removing items in the middle of the list, whereas List<T> can only cheaply add/remove at the end of the list. LinkedList<T> is only at it’s most efficient if you are accessing sequential data (either forwards or backwards) – random access is relatively … Read more

Is there a conditional ternary operator in VB.NET?

Depends upon the version. The If operator in VB.NET 2008 is a ternary operator (as well as a null coalescence operator). This was just introduced, prior to 2008 this was not available. Here’s some more info: Visual Basic If announcement Example: Dim foo as String = If(bar = buz, cat, dog) [EDIT] Prior to 2008 … Read more

How to enable assembly bind failure logging (Fusion) in .NET

Add the following values to HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion Add: DWORD ForceLog set value to 1 DWORD LogFailures set value to 1 DWORD LogResourceBinds set value to 1 DWORD EnableLog set value to 1 String LogPath set value to folder for logs (e.g. C:\FusionLog\) Make sure you include the backslash after the folder name and that the Folder … Read more