TheDeveloperBlog.com

Home | Contact Us

C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML

<< Back to C-SHARP

C# out Parameter

Use the out keyword on arguments. Out parameters help simplify some methods.
Out. This C# keyword signifies a reference parameter. Sometimes methods must return more than one value and not store class state.ParametersKeywords
Out, a keyword, fills these requirements. With it we pass parameters whose changes are realized in their calling methods. In a method, an out argument must be assigned.
An example. The .NET Framework has robust support for object-oriented logic. But it also provides a way to return many values from a method without using objects.Return

First: In Main, 3 local bool variables are declared. These 3 variables are not initialized.

Bool

Then: Those same bool variable locations on the stack are initialized to the false Boolean literal in the TestString method called next.

And: In the loop in TestString, if certain characters occur in the string, the bool parameters are assigned true.

True, False

Info: TestString() can be used in programs to find multiple properties of the string in a single pass through the string's characters.

C# program that uses out Boolean parameters using System; class Program { static void Main() { bool period; // Used as out parameter. bool comma; bool semicolon; const string value = "has period, comma."; // Used as input string. TestString(value, out period, out comma, out semicolon); Console.WriteLine(value); // Display value. Console.Write("period: "); // Display labels and bools. Console.WriteLine(period); Console.Write("comma: "); Console.WriteLine(comma); Console.Write("semicolon: "); Console.WriteLine(semicolon); } static void TestString(string value, out bool period, out bool comma, out bool semicolon) { // Assign all out parameters to false. period = comma = semicolon = false; for (int i = 0; i < value.Length; i++) { switch (value[i]) { case '.': { period = true; // Set out parameter. break; } case ',': { comma = true; // Set out parameter. break; } case ';': { semicolon = true; // Set out parameter. break; } } } } } Output has period, comma. period: True comma: True semicolon: False
Inline out parameters. We can combine statements when calling a method that requires an out parameter. We can declare the variable directly inline with the method call.

Warning: This syntax will not work with older versions of the .NET Framework. So be sure to be targeting .NET 4.7 or later.

C# program that uses inline out parameter syntax using System; class Program { static bool Test(out int size) { // This method has an out parameter. size = 1000; return size >= 1000; } static void Main() { // Declare out parameter directly inside method call. if (Test(out int size)) { Console.WriteLine(size); } } } Output 1000
Discard name syntax. Sometimes we need to call a method with "out" parameters, but do not need to use those parameters. We can avoid using a "dummy" name for those locals.

Discard: The underscore char is a "discard name." The parameter exists, but is not referenced, and does not need a name.

C# program that shows out, discard name using System; class Program { static void Test(out int size, out string name) { size = 10; name = "bird"; } static void Main() { // We do not need the out int, so use an underscore name (discard name). Test(out _, out string name); Console.WriteLine("NAME: {0}", name); } } Output NAME: bird
A discussion. The out descriptor tells the intermediate language compiler to copy the actual variable storage location, not just the value at a storage location.

Tip: Out parameters are often most useful for value types such as bool, int or short.

Tip 2: There is no other easy way to return multiple values without allocating an array or object.

Multiple Return Values
Definite assignment. The C# compiler applies definite assignment analysis. The out keyword ensures that variables are always assigned in the body of a method.Ref
With out, a method can signal to the calling location that the variable location's were initialized and written. Out simplifies code where multiple function calls can be combined.
© TheDeveloperBlog.com
The Dev Codes

Related Links:


Related Links

Adjectives Ado Ai Android Angular Antonyms Apache Articles Asp Autocad Automata Aws Azure Basic Binary Bitcoin Blockchain C Cassandra Change Coa Computer Control Cpp Create Creating C-Sharp Cyber Daa Data Dbms Deletion Devops Difference Discrete Es6 Ethical Examples Features Firebase Flutter Fs Git Go Hbase History Hive Hiveql How Html Idioms Insertion Installing Ios Java Joomla Js Kafka Kali Laravel Logical Machine Matlab Matrix Mongodb Mysql One Opencv Oracle Ordering Os Pandas Php Pig Pl Postgresql Powershell Prepositions Program Python React Ruby Scala Selecting Selenium Sentence Seo Sharepoint Software Spellings Spotting Spring Sql Sqlite Sqoop Svn Swift Synonyms Talend Testng Types Uml Unity Vbnet Verbal Webdriver What Wpf