DEV Community

Cover image for Part 5: Functions and Methods in C#
Adrián Bailador
Adrián Bailador

Posted on

Part 5: Functions and Methods in C#

Functions and methods are essential building blocks in programming that allow you to group reusable blocks of code. In C#, these constructs enable modular and maintainable code design. In this lesson, we will cover the concept of methods, how to create and use them, and how to work with parameters, return values, and method overloading.

1. What is a Method?

A method in C# is a block of code that performs a specific task. It can take input (parameters), perform operations, and optionally return a result. Methods help to make code more organised and reusable.

Example of a Simple Method

public void Greet()
{
    Console.WriteLine("Hello, Codú!");
}
Enter fullscreen mode Exit fullscreen mode

This method, named Greet, outputs a greeting message when called.

2. Creating and Using Methods in C

Defining a Method

To define a method in C#, you need to specify:

  • Access Modifier: Defines the visibility (e.g., public, private).
  • Return Type: Specifies the type of data the method returns (void if it doesn't return anything).
  • Method Name: A unique identifier for the method.
  • Parameters: Optional inputs to the method (inside parentheses).

Example: Method with Parameters

public int Add(int a, int b)
{
    return a + b;
}
Enter fullscreen mode Exit fullscreen mode

This method, Add, takes two integers as parameters and returns their sum.

Calling a Method

To use a method, simply call it by its name and pass the required arguments (if any):

int result = Add(2, 8);
Console.WriteLine($"The sum is {result}");
Enter fullscreen mode Exit fullscreen mode

3. Parameters and Return Values

Parameters

Parameters are placeholders in the method definition that accept values when the method is called.

Example: Passing Parameters

public void PrintMessage(string message)
{
    Console.WriteLine(message);
}
Enter fullscreen mode Exit fullscreen mode
PrintMessage("Welcome to Codú!");
Enter fullscreen mode Exit fullscreen mode

Return Values

Methods can return a value using the return keyword.

Example: Returning a Value

public double Multiply(double x, double y)
{
    return x * y;
}
Enter fullscreen mode Exit fullscreen mode
double product = Multiply(4.5, 2.3);
Console.WriteLine($"The product is {product}");
Enter fullscreen mode Exit fullscreen mode

4. Method Overloading

Method overloading allows you to define multiple methods with the same name but different parameter lists. This is useful when you need to perform similar tasks with different input types or counts.

Example: Overloaded Methods

public void Display(string message)
{
    Console.WriteLine(message);
}

public void Display(string message, int count)
{
    for (int i = 0; i < count; i++)
    {
        Console.WriteLine(message);
    }
}
Enter fullscreen mode Exit fullscreen mode
Display("Hello Codú");
Display("Repeat", 3);
Enter fullscreen mode Exit fullscreen mode

5. Practical Example: Creating Methods

Let’s create a simple program that calculates the area of a rectangle using a method.

public double CalculateArea(double width, double height)
{
    return width * height;
}

// Calling the method
double area = CalculateArea(8.0, 4.5);
Console.WriteLine($"The area of the rectangle is {area}");
Enter fullscreen mode Exit fullscreen mode

This method takes two parameters (width and height) and returns their product as the area of the rectangle.

6. Real-World Use Cases

File Operations Example

Here’s a method to create a file and write text into it:

public void CreateFile(string fileName, string content)
{
    File.WriteAllText(fileName, content);
    Console.WriteLine($"File {fileName} created successfully.");
}

// Usage
CreateFile("example.txt", "Hello, Codú!");
Enter fullscreen mode Exit fullscreen mode

User Input Example

A method to read user input and return it:

public string GetUserInput()
{
    Console.Write("Enter your name: ");
    return Console.ReadLine();
}

// Usage
string name = GetUserInput();
Console.WriteLine($"Hello, {name}!");
Enter fullscreen mode Exit fullscreen mode

7. Handling Edge Cases

Null Checks and Validation

When writing methods, it’s important to validate inputs to avoid runtime errors. For example:

public void PrintUppercase(string text)
{
    if (string.IsNullOrEmpty(text))
    {
        Console.WriteLine("Invalid input: text cannot be null or empty.");
        return;
    }

    Console.WriteLine(text.ToUpper());
}

// Usage
PrintUppercase(null);
Enter fullscreen mode Exit fullscreen mode

8. Advanced Topics

Static Methods

Static methods belong to the class rather than an instance of the class. They are called directly using the class name.

public static void PrintDate()
{
    Console.WriteLine(DateTime.Now);
}

// Usage
ClassName.PrintDate();
Enter fullscreen mode Exit fullscreen mode

Recursive Methods

A recursive method is a method that calls itself. For example, calculating the factorial of a number:

public int Factorial(int n)
{
    if (n == 1) return 1;
    return n * Factorial(n - 1);
}

// Usage
int result = Factorial(5);
Console.WriteLine($"Factorial: {result}");
Enter fullscreen mode Exit fullscreen mode

Image of Timescale

Timescale – the developer's data platform for modern apps, built on PostgreSQL

Timescale Cloud is PostgreSQL optimized for speed, scale, and performance. Over 3 million IoT, AI, crypto, and dev tool apps are powered by Timescale. Try it free today! No credit card required.

Try free

Top comments (0)

Some comments may only be visible to logged-in visitors. Sign in to view all comments.

Heroku

Build apps, not infrastructure.

Dealing with servers, hardware, and infrastructure can take up your valuable time. Discover the benefits of Heroku, the PaaS of choice for developers since 2007.

Visit Site

👋 Kindness is contagious

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay