{"id":218,"date":"2021-12-28T23:50:04","date_gmt":"2021-12-28T16:50:04","guid":{"rendered":"https:\/\/csharptutorial.net\/?page_id=218"},"modified":"2022-06-03T13:26:58","modified_gmt":"2022-06-03T06:26:58","slug":"csharp-functions","status":"publish","type":"page","link":"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-functions\/","title":{"rendered":"C# Functions"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you&#8217;ll learn how to make your code reusable by using C# functions.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction to the C# functions<\/h2>\n\n\n\n<p>Sometimes, you want to perform the same task multiple times in a program. To do so, you can copy and paste the code into various places. However, doing so makes the program very difficult to maintain. <\/p>\n\n\n\n<p>In programming, we have the <strong>Don&#8217;t Repeat Yourself (DRY) <\/strong>principle. It means that if you find yourself writing the same statements over and over again, you can turn those statements into a function.<\/p>\n\n\n\n<p>By definition, a function is a reusable named block of code that does one task. <\/p>\n\n\n\n<p>For example, the following defines the <code>SayHi()<\/code> function that outputs the <code>\"Hi\"<\/code> message to the console:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SayHi<\/span>(<span class=\"hljs-params\"><\/span>)<\/span>\n{\n    Console.WriteLine(<span class=\"hljs-string\">\"Hi\"<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this function:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><code>void<\/code>  keyword indicates that the <code>SayHi<\/code> function doesn&#8217;t return a value.<\/li><li>The <code>SayHi<\/code> identifier is the function name. And you should name the function as descriptive as possible. By convention, the function name should start with a verb (do something specific).<\/li><li>A function can have zero or more parameters specified in the parentheses that follow the function name. In this example, the <code>SayHi<\/code> function has no parameter. We&#8217;ll cover the parameters shortly.<\/li><li>The block that follows the parentheses is the function body. A function body contains one or more statements.<\/li><\/ul>\n\n\n\n<p>To use the <code>SayHi()<\/code> function, you call it like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">SayHi();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Hi<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>When encountering a function call, the compiler will execute the statement inside that function. In this example, it executes the statement that outputs the <code>\"Hi\"<\/code> message.<\/p>\n\n\n\n<p>And you can call the <code>SayHi()<\/code> function as many times as you want like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SayHi<\/span>(<span class=\"hljs-params\"><\/span>)<\/span>\n{\n    Console.WriteLine(<span class=\"hljs-string\">\"Hi\"<\/span>);\n}\n\nSayHi();\nSayHi();\nSayHi();<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Hi\nHi\nHi<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Passing information to functions <\/h2>\n\n\n\n<p>To say hi to someone, you can modify the <code>SayHi()<\/code> function by adding the <code>name<\/code> parameter like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-6\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SayHi<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> name<\/span>)<\/span>\n{\n    Console.WriteLine(<span class=\"hljs-string\">$\"Hi <span class=\"hljs-subst\">{name}<\/span>\"<\/span>);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-6\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The <code>name<\/code> is the input of the <code>SayHi()<\/code> function. Technically speaking, the name is a parameter of the <code>SayHi()<\/code> function. <\/p>\n\n\n\n<p>Defining a parameter is like <a href=\"https:\/\/csharptutorial.net\/csharp-tutorial\/csharp-variables\/\">declaring a variable<\/a>. And you can access the parameter like a variable inside the function.<\/p>\n\n\n\n<p>When calling the <code>SayHi()<\/code> function, you need to specify a value for the <code>name<\/code> parameter as follows:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-7\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">SayHi(<span class=\"hljs-string\">\"John\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-7\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-8\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Hi John<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-8\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Put it all together.<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-9\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">void<\/span> <span class=\"hljs-title\">SayHi<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> name<\/span>)<\/span>\n{\n    Console.WriteLine(<span class=\"hljs-string\">$\"Hi <span class=\"hljs-subst\">{name}<\/span>\"<\/span>);\n}\n\nSayHi(<span class=\"hljs-string\">\"John\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-9\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Parameters vs. arguments<\/h2>\n\n\n\n<p>A function parameter is an identifier that you specify in the function definition while a function argument is a value that you pass to the function when calling it.<\/p>\n\n\n\n<p>In the previous example, the <code>name<\/code> is a parameter of the <code>SayHi()<\/code> function. When calling the <code>SayHi()<\/code> function, you pass the literal string <code>\"John\"<\/code> to it. This string value is called an argument.<\/p>\n\n\n\n<p>Sometimes, you&#8217;ll see the terms parameter and argument are used interchangeably. But it&#8217;s important to understand the difference between them.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Returning a value<\/h2>\n\n\n\n<p>The <code>SayHi()<\/code> function doesn&#8217;t return any value. Therefore, you use the <code>void<\/code> keyword. However, if a function returns a value, you need to specify the type of the return value instead.<\/p>\n\n\n\n<p>For example, the following new <code>SayHi()<\/code> function returns a string:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-10\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">string<\/span> <span class=\"hljs-title\">SayHi<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> name<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">$\"Hi <span class=\"hljs-subst\">{name}<\/span>\"<\/span>;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-10\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this new <code>SayHi()<\/code> function, we use the <code>string<\/code> keyword as the return type of the function instead of <code>void<\/code>. Also, we use the <code>return<\/code> statement to return a string.<\/p>\n\n\n\n<p>The following code calls the <code>SayHi()<\/code> function, assigns the return value to the <code>greeting<\/code> variable, and prints it out:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-11\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">string<\/span> <span class=\"hljs-title\">SayHi<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">string<\/span> name<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">$\"Hi <span class=\"hljs-subst\">{name}<\/span>\"<\/span>;\n}\n\n<span class=\"hljs-keyword\">string<\/span> greeting = SayHi(<span class=\"hljs-string\">\"John\"<\/span>);\nConsole.WriteLine(greeting);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-11\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-12\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Hi John<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-12\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The reason we return a string from the <code>SayHi()<\/code> function instead of outputting it directly to the console is that we want to reuse the <code>SayHi()<\/code> function in other applications such as web applications, not just console applications.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Documenting C# functions with XML comments<\/h2>\n\n\n\n<p>The following example defines the <code>CalculateBMI()<\/code> function that calculates the body mass index based on the weight in kilograms and height in meters:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-13\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-function\"><span class=\"hljs-keyword\">double<\/span> <span class=\"hljs-title\">CalculateBMI<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">double<\/span> weight, <span class=\"hljs-keyword\">double<\/span> height<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">return<\/span> weight \/ (height * height);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-13\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>When calling the <code>CalculateBMI()<\/code> function, the Visual Studio (or any code editor) shows the function header:<\/p>\n\n\n\n<p>However, if you want it to show more information about the function, you can add comments to the function. like this:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-14\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> Calculate the body mass index (BMI) based on weight in kg and height in meter<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;param name=\"weight\"&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The weight in kilogram<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/param&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;param name=\"height\"&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The height in meter<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/param&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;returns&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The body mass index<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/returns&gt;<\/span><\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">double<\/span> <span class=\"hljs-title\">CalculateBMI<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">double<\/span> weight, <span class=\"hljs-keyword\">double<\/span> height<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">return<\/span> weight \/ (height * height);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-14\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>To create a comment section for a function, you enter three forward slashes (<code>\/\/\/<\/code>) right before the function header.<\/p>\n\n\n\n<p>The comment of the CalculateBMI function has three main tags: <code>summary<\/code>, <code>param<\/code>, and <code>returns<\/code>. <\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>The <code>summary<\/code> tag contains the function description <\/li><li>The <code>param<\/code> tag describes the parameters <\/li><li>The <code>returns<\/code> tag contains the information of the return value<\/li><\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">C# function example<\/h2>\n\n\n\n<p>The following program calculates the BMI and displays the corresponding weight status:\/<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-15\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> Calculate the body mass index (BMI) based on weight in kg and height in meter<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;param name=\"weight\"&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The weight in kilogram<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/param&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;param name=\"height\"&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The height in meter<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/param&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;returns&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The body mass index<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/returns&gt;<\/span><\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">double<\/span> <span class=\"hljs-title\">CalculateBMI<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">double<\/span> weight, <span class=\"hljs-keyword\">double<\/span> height<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">return<\/span> weight \/ (height * height);\n}\n\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> Get the weight status based on the Body Mass Index (BMI)<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span><span class=\"hljs-doctag\">&lt;params name=\"bmi\"&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span>The body mass index<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span><span class=\"hljs-doctag\">&lt;\/params&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> A text string that represents the weight status<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span><span class=\"hljs-doctag\">&lt;returns&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span><span class=\"hljs-doctag\">&lt;\/returns&gt;<\/span><\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">string<\/span> <span class=\"hljs-title\">GetWeightStatus<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">double<\/span> bmi<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">string<\/span> weightStatus = <span class=\"hljs-string\">\"\"<\/span>;\n\n    <span class=\"hljs-keyword\">switch<\/span> (bmi)\n    {\n        <span class=\"hljs-keyword\">case<\/span> &lt; <span class=\"hljs-number\">18.5<\/span>:\n            weightStatus = <span class=\"hljs-string\">\"Underweight\"<\/span>;\n            <span class=\"hljs-keyword\">break<\/span>;\n        <span class=\"hljs-keyword\">case<\/span> &gt;= <span class=\"hljs-number\">18.5<\/span> and &lt;= <span class=\"hljs-number\">24.9<\/span>:\n            weightStatus = <span class=\"hljs-string\">\"Healthy Weight\"<\/span>;\n            <span class=\"hljs-keyword\">break<\/span>;\n        <span class=\"hljs-keyword\">case<\/span> &gt;= <span class=\"hljs-number\">25<\/span> and &lt;= <span class=\"hljs-number\">29.9<\/span>:\n            weightStatus = <span class=\"hljs-string\">\"Overweight\"<\/span>;\n            <span class=\"hljs-keyword\">break<\/span>;\n        <span class=\"hljs-keyword\">case<\/span> &gt; <span class=\"hljs-number\">30<\/span>:\n            weightStatus = <span class=\"hljs-string\">\"Obesity\"<\/span>;\n            <span class=\"hljs-keyword\">break<\/span>;\n    }\n    <span class=\"hljs-keyword\">return<\/span> weightStatus;\n}\n\n<span class=\"hljs-comment\">\/\/ main program<\/span>\nConsole.WriteLine(<span class=\"hljs-string\">\"Body Mass Index (BMI) Calculation\"<\/span>);\n\nConsole.WriteLine(<span class=\"hljs-string\">\"Enter a weight (kg):\"<\/span>);\n<span class=\"hljs-keyword\">var<\/span> weight = Convert.ToDouble(Console.ReadLine());\n\nConsole.WriteLine(<span class=\"hljs-string\">\"Enter a height (m):\"<\/span>);\n<span class=\"hljs-keyword\">var<\/span> height = Convert.ToDouble(Console.ReadLine());\n\n\n<span class=\"hljs-keyword\">double<\/span> bmi = CalculateBMI(weight, height);\n<span class=\"hljs-keyword\">string<\/span> weightStatus = GetWeightStatus(bmi);\n\nConsole.WriteLine(<span class=\"hljs-string\">$\"BMI: <span class=\"hljs-subst\">{bmi:<span class=\"hljs-number\">0.<\/span>#}<\/span>\"<\/span>);\nConsole.WriteLine(<span class=\"hljs-string\">$\"Weight status:<span class=\"hljs-subst\">{ weightStatus}<\/span>\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-15\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>How it works.<\/p>\n\n\n\n<p>First, define the <code>CalculateBMI()<\/code> function that returns the BMI based on weight and height:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-16\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> Calculate the body mass index (BMI) based on weight in kg and height in meter<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;param name=\"weight\"&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The weight in kilogram<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/param&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;param name=\"height\"&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The height in meter<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/param&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;returns&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> The body mass index<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/returns&gt;<\/span><\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">double<\/span> <span class=\"hljs-title\">CalculateBMI<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">double<\/span> weight, <span class=\"hljs-keyword\">double<\/span> height<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">return<\/span> weight \/ (height * height);\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-16\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Next, define the <code>GetWeightStatus()<\/code> function that returns the weight status based on a BMI:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-17\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> Get the weight status based on the Body Mass Index (BMI)<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> <span class=\"hljs-doctag\">&lt;\/summary&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span><span class=\"hljs-doctag\">&lt;params name=\"bmi\"&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span>The body mass index<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span><span class=\"hljs-doctag\">&lt;\/params&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span> A text string that represents the weight status<\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span><span class=\"hljs-doctag\">&lt;returns&gt;<\/span><\/span>\n<span class=\"hljs-comment\"><span class=\"hljs-doctag\">\/\/\/<\/span><span class=\"hljs-doctag\">&lt;\/returns&gt;<\/span><\/span>\n<span class=\"hljs-function\"><span class=\"hljs-keyword\">string<\/span> <span class=\"hljs-title\">GetWeightStatus<\/span>(<span class=\"hljs-params\"><span class=\"hljs-keyword\">double<\/span> bmi<\/span>)<\/span>\n{\n    <span class=\"hljs-keyword\">string<\/span> weightStatus = <span class=\"hljs-string\">\"\"<\/span>;\n\n    <span class=\"hljs-keyword\">switch<\/span> (bmi)\n    {\n        <span class=\"hljs-keyword\">case<\/span> &lt; <span class=\"hljs-number\">18.5<\/span>:\n            weightStatus = <span class=\"hljs-string\">\"Underweight\"<\/span>;\n            <span class=\"hljs-keyword\">break<\/span>;\n        <span class=\"hljs-keyword\">case<\/span> &gt;= <span class=\"hljs-number\">18.5<\/span> and &lt;= <span class=\"hljs-number\">24.9<\/span>:\n            weightStatus = <span class=\"hljs-string\">\"Healthy Weight\"<\/span>;\n            <span class=\"hljs-keyword\">break<\/span>;\n        <span class=\"hljs-keyword\">case<\/span> &gt;= <span class=\"hljs-number\">25<\/span> and &lt;= <span class=\"hljs-number\">29.9<\/span>:\n            weightStatus = <span class=\"hljs-string\">\"Overweight\"<\/span>;\n            <span class=\"hljs-keyword\">break<\/span>;\n        <span class=\"hljs-keyword\">case<\/span> &gt; <span class=\"hljs-number\">30<\/span>:\n            weightStatus = <span class=\"hljs-string\">\"Obesity\"<\/span>;\n            <span class=\"hljs-keyword\">break<\/span>;\n    }\n    <span class=\"hljs-keyword\">return<\/span> weightStatus;\n}<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-17\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Then, prompt users to input the height and weight:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-18\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">\nConsole.WriteLine(<span class=\"hljs-string\">\"Body Mass Index (BMI) Calculation\"<\/span>);\n\nConsole.WriteLine(<span class=\"hljs-string\">\"Enter a weight (kg):\"<\/span>);\n<span class=\"hljs-keyword\">var<\/span> weight = Convert.ToDouble(Console.ReadLine());\n\nConsole.WriteLine(<span class=\"hljs-string\">\"Enter a height (m):\"<\/span>);\n<span class=\"hljs-keyword\">var<\/span> height = Convert.ToDouble(Console.ReadLine());<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-18\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>After that, call the <code>CalculateBMI()<\/code> and <code>GetWeightStatus()<\/code> function to calculate the BMI and weight status:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-19\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\"><span class=\"hljs-keyword\">double<\/span> bmi = CalculateBMI(weight, height);\n<span class=\"hljs-keyword\">string<\/span> weightStatus = GetWeightStatus(bmi);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-19\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Finally, show the output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-20\" data-shcb-language-name=\"C#\" data-shcb-language-slug=\"cs\"><span><code class=\"hljs language-cs\">Console.WriteLine(<span class=\"hljs-string\">$\"BMI: <span class=\"hljs-subst\">{bmi:<span class=\"hljs-number\">0.<\/span>#}<\/span>\"<\/span>);\nConsole.WriteLine(<span class=\"hljs-string\">$\"Weight status:<span class=\"hljs-subst\">{ weightStatus}<\/span>\"<\/span>);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-20\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">C#<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">cs<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\"><li>A function is a reusable named block of code that does one task.<\/li><li>A function can have zero or more parameters and an optional return value.<\/li><li>Use the <code>return<\/code> statement to return a value from a function.<\/li><li>Use XML comments to document a function.<\/li><\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful ?<\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"218\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-functions\/\"\n\t\t\t\tdata-post-title=\"C# Functions\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"218\"\n\t\t\t\tdata-post-url=\"https:\/\/www.csharptutorial.net\/csharp-tutorial\/csharp-functions\/\"\n\t\t\t\tdata-post-title=\"C# Functions\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>By definition, a function is a reusable named block of code that does one task. In this tutorial, you&#8217;ll learn how to make your code reusable by using C# functions.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":7,"menu_order":21,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-218","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/218","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/comments?post=218"}],"version-history":[{"count":5,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/218\/revisions"}],"predecessor-version":[{"id":707,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/218\/revisions\/707"}],"up":[{"embeddable":true,"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/pages\/7"}],"wp:attachment":[{"href":"https:\/\/www.csharptutorial.net\/wp-json\/wp\/v2\/media?parent=218"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}