Method overloading lets you create multiple methods with the same name but different inputs. This helps keep your code simple and organized.
Method overloading in C Sharp (C#)
returnType MethodName(type1 param1) { ... }
returnType MethodName(type1 param1, type2 param2) { ... }
returnType MethodName(type2 param1) { ... }Each method must differ by the number or type of parameters.
Return type alone cannot distinguish overloaded methods.
Print handle either an integer or a string.void Print(int number) { Console.WriteLine($"Number: {number}"); } void Print(string text) { Console.WriteLine($"Text: {text}"); }
Add methods add two or three numbers.int Add(int a, int b) { return a + b; } int Add(int a, int b, int c) { return a + b + c; }
This program shows two Display methods. One prints a message once, the other prints it multiple times.
using System; class Program { static void Display(string message) { Console.WriteLine($"Message: {message}"); } static void Display(string message, int times) { for (int i = 0; i < times; i++) { Console.WriteLine($"Message {i + 1}: {message}"); } } static void Main() { Display("Hello"); Display("Hi", 3); } }
Method overloading improves code clarity by grouping similar actions under one name.
Be careful to avoid methods that differ only by return type; this causes errors.
Method overloading means having multiple methods with the same name but different parameters.
It helps write cleaner and easier-to-understand code.
Each overloaded method must differ in parameter type or count.
Practice
What is method overloading in C#?
Solution
Step 1: Understand method naming
Method overloading means using the same method name multiple times.Step 2: Check parameter differences
Each overloaded method must have different parameters (type or count).Final Answer:
Having multiple methods with the same name but different parameters -> Option CQuick Check:
Method overloading = Same name, different parameters [OK]
- Confusing overloading with overriding
- Thinking return type alone allows overloading
- Believing parameter names must differ
Which of the following is correct syntax for method overloading in C#?
public void Print(int x) { }
public void Print(string x) { }Solution
Step 1: Check method names
Both methods are named 'Print', which is allowed for overloading.Step 2: Check parameter types
One method takes an int, the other a string, so parameters differ.Final Answer:
Both methods have the same name but different parameter types -> Option AQuick Check:
Same name + different parameters = valid overloading [OK]
- Thinking parameter names affect overloading
- Believing return type difference is enough
- Assuming method names must be unique
What will be the output of this C# code?
class Program {
static void Display(int x) { Console.WriteLine("Int: " + x); }
static void Display(string x) { Console.WriteLine("String: " + x); }
static void Main() {
Display(5);
Display("Hello");
}
}Solution
Step 1: Identify which Display method is called
Display(5) calls Display(int x), printing "Int: 5".Step 2: Identify second method call
Display("Hello") calls Display(string x), printing "String: Hello".Final Answer:
Int: 5\nString: Hello -> Option BQuick Check:
Overloaded methods called by matching parameter type [OK]
- Assuming ambiguous call error
- Mixing output order
- Expecting runtime error
Find the error in this code snippet:
class Test {
void Show(int x) { }
void Show(int x) { }
}Solution
Step 1: Check method signatures
Both methods are named 'Show' and take one int parameter, so signatures are identical.Step 2: Understand overloading rules
Overloading requires different parameter types or counts; identical signatures cause errors.Final Answer:
Methods have the same signature causing a compile error -> Option DQuick Check:
Same name + same parameters = error [OK]
- Thinking return type difference matters
- Assuming parameter names affect overloading
- Believing code compiles fine
You want to create a class with a method Calculate that can add two integers, two doubles, or concatenate two strings. Which method signatures correctly implement method overloading?
Solution
Step 1: Check parameter types and counts
void Calculate(int a, int b), void Calculate(double a, double b), void Calculate(string a, string b) has three methods named Calculate with different parameter types but same count (2).Step 2: Verify overloading rules
Different parameter types allow overloading; all methods differ by parameter type.Final Answer:
void Calculate(int a, int b), void Calculate(double a, double b), void Calculate(string a, string b) -> Option AQuick Check:
Same name, different parameter types = valid overloading [OK]
- Using same parameters with different return types
- Changing parameter count incorrectly
- Confusing overloading with overriding
Ready to prove it?
Pass the test and this pattern moves unknown
