Method declaration and calling in C Sharp (C#) - Time & Space Complexity
When we declare and call a method, it is important to know how the time it takes grows as we use it more.
We want to find out how the number of steps changes when the method is called.
Analyze the time complexity of the following code snippet.
public void PrintNumbers(int n)
{
for (int i = 0; i < n; i++)
{
Console.WriteLine(i);
}
}
PrintNumbers(5);
This code defines a method that prints numbers from 0 up to n-1, then calls it with 5.
Identify the loops, recursion, array traversals that repeat.
- Primary operation: The for-loop that runs from 0 to n-1.
- How many times: It runs exactly n times, once for each number.
As n grows, the number of times the loop runs grows the same way.
| Input Size (n) | Approx. Operations |
|---|---|
| 10 | 10 times printing |
| 100 | 100 times printing |
| 1000 | 1000 times printing |
Pattern observation: The work grows directly with n, so doubling n doubles the work.
Time Complexity: O(n)
This means the time it takes grows in a straight line as the input number n grows.
[X] Wrong: "Calling a method once always takes the same time, no matter what the input is."
[OK] Correct: The method's time depends on what it does inside. If it loops n times, bigger n means more time.
Understanding how method calls affect time helps you explain your code clearly and shows you know how programs grow with input size.
"What if the method called itself inside (recursion) instead of using a loop? How would the time complexity change?"
Practice
Greet that returns nothing and takes no parameters in C#?Solution
Step 1: Understand method declaration syntax
A method declaration starts with an access modifier (like public), then the return type (void means no return), then the method name, and parentheses for parameters.Step 2: Check each option's syntax
public void Greet() { } correctly uses 'public void Greet() { }'. Options A, B, and D have syntax errors like wrong brackets or missing parentheses.Final Answer:
public void Greet() { } -> Option DQuick Check:
Method declaration = public void Greet() { } [OK]
- Using square brackets [] instead of parentheses ()
- Omitting parentheses after method name
- Placing return type after method name
CalculateSum that takes two integers as parameters?Solution
Step 1: Recall method call syntax
To call a method, use its name followed by parentheses containing arguments separated by commas.Step 2: Evaluate each option
CalculateSum(5, 10); uses parentheses correctly. Options B, C, and D use incorrect brackets or omit parentheses, causing syntax errors.Final Answer:
CalculateSum(5, 10); -> Option CQuick Check:
Method call = name + parentheses + arguments [OK]
- Using square brackets instead of parentheses
- Omitting parentheses when calling methods
- Using curly braces for method calls
public class Program {
public static int Double(int x) {
return x * 2;
}
public static void Main() {
int result = Double(4);
Console.WriteLine(result);
}
}Solution
Step 1: Understand the method Double
The method takes an integer x and returns x multiplied by 2.Step 2: Trace the method call in Main
Double(4) returns 4 * 2 = 8, which is stored in result and printed.Final Answer:
8 -> Option AQuick Check:
Double(4) = 8 [OK]
- Confusing return value with input
- Expecting 16 by squaring instead of doubling
- Thinking method does not return a value
public int AddNumbers(int a, int b) {
int sum = a + b;
}Solution
Step 1: Check method return type and body
The method declares it returns an int but does not return any value.Step 2: Fix by adding a return statement
Addingreturn sum;returns the calculated value, matching the return type.Final Answer:
Add a return statement:return sum;-> Option AQuick Check:
Return value needed for non-void methods [OK]
- Forgetting to return a value in non-void methods
- Changing return type incorrectly
- Removing parameters unnecessarily
IsEven that returns true if a number is even, otherwise false. Which of the following is the correct method declaration and call to check if 7 is even?Solution
Step 1: Check method return type and logic
Method should return bool and use modulo (%) to check evenness. public bool IsEven(int num) { return num % 2 == 0; } ... bool result = IsEven(7); correctly returns true if remainder is 0.Step 2: Verify method call and variable type
public bool IsEven(int num) { return num % 2 == 0; } ... bool result = IsEven(7); calls IsEven(7) and stores result in a bool variable, matching the method return type.Final Answer:
public bool IsEven(int num) { return num % 2 == 0; } ... bool result = IsEven(7); -> Option BQuick Check:
Use modulo and bool return for even check [OK]
- Using division instead of modulo for even check
- Returning int instead of bool
- Declaring method void but trying to return a value
Ready to prove it?
Pass the test and this pattern moves unknown
