Common situation in ASP.Net development...

string someInput = Request.QueryString["qsvarname"].ToLower();

If the variable doesn't exist in the URL QueryString parameters, you get back a null which causes the attempt to call ToLower() to fail.

This applies to Request[] and Request.Form[] as well.
Solution: The Null coalescing operator (??)…

string someInput = (Request.QueryString["qsvarname"] ?? string.Empty).ToLower();

Alternative solutions and the associated problems…

string someInput = string.Empty;
try {
    someInput = Request.QueryString["qsvarname"].ToLower();
}
catch (Exception) {
    someInput = string.Empty;
}

The above uses an expensive try/catch block to stop the NullReferenceException from halting the page execution.

string someInput;
someInput = Request.QueryString["qsvarname"];
if (someInput == null) {
    someInput = string.Empty;
}
someInput = someInput.ToLower();

C# strings are immutable. Every time you assign something to someInput you're leaving behind memory that has to be reclaimed by the garbage collector. The garbage collector is something to be avoided whenever possible in a high traffic web application.