Thứ Sáu, 16 tháng 4, 2010

// // Leave a Comment

Phương Thức Nạp Chồng - Overloading

 C# hỗ trợ phương thức nạp chồng với một vài dạng phương thức khác nhau về những đặc tính sau: tên, số lượng thông số, và kiểu thông số. Nhưng nó không hỗ trợ những thông số mặc định như C++ và VB. Một cách đơn giản là bạn khai báo những phương thức cùng tên nhưng khác số lượng và kiểu của thông số.

Method Overloading xuất hiện khi trong một class có từ hai hàm có cùng tên. Có hai kiểu Method Overloading:

  • Function Overloading dựa trên kiểu giá trị tham số truyền vào.
  • Function Overloading dựa trên số lượng tham số truyền vào.

Ví dụ


class Library
{
// Function Overloading
        public void insertbooks(int id)
        {
            //
        }
        public void insertbooks(int id, int type)
        {
            //
        }
        public void insertbooks(string id, int type)
        {
            //
  }
}


Ba hàm insertbooks ở trên là một ví dụ về function overloading trong lập trình C#. Trong khi hàm thứ nhất và thứ 2 là overloading theo số lượng tham số, và hàm thứ 3 với hàm thứ 2 là overloading theo kiểu tham số truyền vào.



- Bởi vì C# không hỗ trợ những thông số tùy chọn nên bạn cần sử dụng những phương thức nạp chồng để đạt được cùng một hiệu quả:



class MyClass
{
   int DoSomething(int x) // Gọi hàm 2 tham số với một giá trị mặc định là 10;
  {
      DoSomething(x, 10);
  }

  int DoSomething(int x, int y)
  {
     // Làm một điều gì đó ở đây :D
  }
}

- Trong bất kỳ một ngôn ngữ nào, phương thức nạp chồng có thể đem đến một lỗi nghiêm trọng nếu nó bị gọi sai. Trong chương tới ta sẽ bàn cách để tránh đều đó. Trong C# có một vài điểm khác nhỏ về thông số trong các phương thức nạp chồng cần biết như sau:
- Nó không chấp nhận hai phương thức chỉ khác nhau về kiểu trả về.
- Nó không chấp nhận hai phương thức chỉ khác nhau về đặc tính của một thông số đang được khai báo như ref hay out.

0 comments: