Overloading trong C# có hai loại:
Nạp chồng hàm (Function Overloading)
Có thể có nhiều định nghĩa cho cùng tên hàm trong cùng phạm vi. Các định nghĩa phải khác nhau về kiểu và/hoặc số lượng tham số.
public static int mulDisplay(int one, int two) { }
public static int mulDisplay(int one, int two, int three) { }
public static int mulDisplay(int one, int two, int three, int four) { }
Nạp chồng toán tử (Operator Overloading)
Toán tử nạp chồng là hàm với tên đặc biệt. Từ khóa operator theo sau là ký hiệu toán tử được định nghĩa.
public static Box operator+ (Box b, Box c) {
Box box = new Box();
box.length = b.length + c.length;
box.breadth = b.breadth + c.breadth;
box.height = b.height + c.height;
return box;
}