I’ve used the _ (underscore) previously in code – particularly with F# tuples but also C#. It is used to denote a value that is intentionally unused, ignored, discarded.
It seems that the underscore used in such situations has a name (maybe it has the same name in other languages, I’ve not yet checked). It’s called a discard.
Note: With regard to its use in C#, it appeared with C# 7.0.
Let’s have a look at a very simple example
public bool IsNumber => Double.TryParse("123", out _);
This slightly contrived example (the best I could think of quickly) shows how this might be used. In this example we’re not interested in the out value so just use a discard to basically say “this is unused, ignore it”.
Note: The discard doesn’t need a var or type.
Obviously the discard comes in very useful with tuples. I guess, for C#, this became most useful when tuples became a first class language feature.
So for example we might have this code
public (string, string, int) GetPerson() { return ("Scooby", "Doo", 13); } // in use we only want the age var (_, _, age) = GetPerson();