You can declare out variables when calling methods.
You can discard the out variables that you're uninterested in with an underscore:
Split("this is a test", out string a, out _); // Discard the 2nd param Console.WriteLine (a);
The compiler treats the underscore as a special symbol, called a discard.
using System; class Test//from w w w . j a va 2 s.c om { static void Split (string name, out string firstNames,out string lastName) { int i = name.LastIndexOf (' '); firstNames = name.Substring (0, i); lastName = name.Substring (i + 1); } static void Main() { string a, b; Split ("this is a test", out a, out _); Console.WriteLine (a); } }
You can include multiple discards in a single call.
Test(out _, out _, out _, out int x, out _, out _, out _);
The compiler would not allow you to use underscore if a real underscore variable is in scope:
string _; Split ("this is a test", out string a, _); // Will not compile