C#  

What are the difference between a function and a method in C# ?

🔹 Introduction

When learning programming, especially in C#, you’ll often come across two commonly used terms: function and method. At first glance, they may seem the same since both perform operations, accept inputs, and can return results. However, in programming, especially in object-oriented languages like C#, they have different roles.

📌 What is a Function?

A function is a block of code that is designed to do a specific task. Functions:

  • Can exist independently, meaning they don’t always need an object.
  • Take input parameters and return results.
  • Improve reusability because you can call them multiple times without rewriting code.

In C#, most of the time, functions appear as static methods since everything in C# must be inside a class. A static function doesn’t need an object to run.

Example of a Function:

using System;

class Program
{
    // Function (static, not tied to an object)
    public static int Add(int a, int b)
    {
        return a + b;
    }

    static void Main()
    {
        Console.WriteLine(Add(5, 10)); // Output: 15
    }
}

Here, Add is a function because it is static and is not tied to any object.

📌 What is a Method?

A method is basically a function that is connected to a class or an object. In object-oriented programming (OOP), methods represent the behavior of an object.

  • You call a method using an object.
  • Methods often work with the data (fields/properties) of the class they belong to.
  • They support encapsulation in OOP by grouping data and behavior together.

Example of a Method:

using System;

class Calculator
{
    // Instance method
    public int Multiply(int a, int b)
    {
        return a * b;
    }
}

class Program
{
    static void Main()
    {
        Calculator calc = new Calculator();
        Console.WriteLine(calc.Multiply(3, 4)); // Output: 12
    }
}

Here, Multiply is a method because it belongs to the Calculator class and is called through an object (calc).

⚖️ Key differences between Function vs Method in C#

Aspect Function Method
Definition Block of code that performs a task. A function that belongs to a class or object.
Context General programming concept. Object-Oriented Programming concept.
Binding Can be independent (static/global). Always tied to a class or object.
Usage in C# Usually written as static functions. Usually written as instance methods.
Example Add(a, b) object.Multiply(a, b)

🔄 Function vs Method in Java

Since both Java and C# are object-oriented languages, the difference is almost the same in both.

Example:

class Calculator {
    // Method
    int subtract(int a, int b) {
        return a - b;
    }

    // Function (static)
    static int divide(int a, int b) {
        return a / b;
    }

    public static void main(String[] args) {
        Calculator calc = new Calculator();

        // Calling method
        System.out.println(calc.subtract(10, 5)); // Output: 5

        // Calling function
        System.out.println(divide(20, 4)); // Output: 5
    }
}

In Java:

  • subtract is a method because it belongs to an object.
  • divide is a function because it is static and does not need an object.

🏁 Summary

A function is a block of code that works independently, while a method is a function that belongs to a class or object. In C#, functions are often represented as static methods, while instance methods represent object behavior. The same rule applies in Java. Understanding the difference helps you write cleaner, object-oriented, and reusable code.