 In this chapter you will learn:

In function overloading, a function works differently based on parameters. A single function can have different nature based on a number of parameters and types of parameters. For example, you have a function Sum() that accepts values as a parameter and print their addition. You can write multiple functions with name Sum() but the parameter signature must be different.

#### Programming Example

```using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

{
class Program
{
static void Main(string[] args)
{
Calculator.sum();
Calculator.sum(5,4);
Calculator.sum(9.3f, 8.6f);
Calculator.sum("Hello World");
}
}
static class Calculator
{
public static void sum()
{
Console.WriteLine("No Value Provided");
}
public static void sum(int x, int y)
{
Console.WriteLine("Sum of {0} and {1} is {2}", x, y, (x + y));
}
public static void sum(float x, float y)
{
Console.WriteLine("Sum of {0} and {1} is {2}", x, y, (x + y));
}
public static void sum(string s)
{
Console.WriteLine("{0} - is not a numeric value", s);
}
}
}```

#### Output

```No Value Provided
Sum of 5 and 4 is 9
Sum of 9.3 and 8.6 is 17.9
Hello World - is not a numeric value
_
```