How do I restart my C# WinForm Application?

Unfortunately you can’t use Process.Start() to start an instance of the currently running process. According to the Process.Start() docs: “If the process is already running, no additional process resource is started…” This technique will work fine under the VS debugger (because VS does some kind of magic that causes Process.Start to think the process is … Read more

Regular expression “^[a-zA-Z]” or “[^a-zA-Z]”

Yes, the first means “match all strings that start with a letter”, the second means “match all strings that contain a non-letter”. The caret (“^”) is used in two different ways, one to signal the start of the text, one to negate a character match inside square brackets.

Deep cloning objects

Whereas one approach is to implement the ICloneable interface (described here, so I won’t regurgitate), here’s a nice deep clone object copier I found on The Code Project a while ago and incorporated it into our code. As mentioned elsewhere, it requires your objects to be serializable. The idea is that it serializes your object and then deserializes it into … Read more

HTML.ActionLink method

I think what you want is this: ASP.NET MVC1 This uses the following method ActionLink signature: ASP.NET MVC2 two arguments have been switched around This uses the following method ActionLink signature: ASP.NET MVC3+ arguments are in the same order as MVC2, however the id value is no longer required: This avoids hard-coding any routing logic … Read more

How do you sort a dictionary by value?

Use: Since you’re targeting .NET 2.0 or above, you can simplify this into lambda syntax — it’s equivalent, but shorter. If you’re targeting .NET 2.0 you can only use this syntax if you’re using the compiler from Visual Studio 2008 (or above).

What’s the @ in front of a string in C#?

It marks the string as a verbatim string literal – anything in the string that would normally be interpreted as an escape sequence is ignored. So “C:\\Users\\Rich” is the same as @”C:\Users\Rich” There is one exception: an escape sequence is needed for the double quote. To escape a double quote, you need to put two double quotes in a row. For instance, @”””” evaluates … Read more

ArrayList vs List<> in C#

Yes, pretty much. List<T> is a generic class. It supports storing values of a specific type without casting to or from object (which would have incurred boxing/unboxing overhead when T is a value type in the ArrayList case). ArrayList simply stores object references. As a generic collection, List<T> implements the generic IEnumerable<T> interface and can be used easily in LINQ (without requiring any Cast or OfType call). ArrayList belongs to the days that C# didn’t have … Read more

Difference between decimal, float and double in .NET?

float and double are floating binary point types. In other words, they represent a number like this: The binary number and the location of the binary point are both encoded within the value. decimal is a floating decimal point type. In other words, they represent a number like this: Again, the number and the location of the decimal point are both encoded within the value – that’s … Read more