Phương thức Trong phần này chúng ta sẽ được học làm thế nào để định nghĩa các phương thức trong C#. Khai báo phương thức (Declaring Methods) Cú pháp khai báo trong C# gần như giống với cách khai báo trong C++ và Java. Chỉ khác là mỗi phương thức được khai báo tách biệt public hoặc private. Không thể dùng public để nhóm các phương thức định nghĩa Ngoài ra tất cả các phương thức C# được định nghĩa trong lớp định nghĩa Trong C#, các phuơng thức kèm theo các từ khoá dùng bỗ nghĩa cho phương thức., kiểu giá trị trả về, các tham số nhập vào và phần thân nằm trong dấu ngoặc kép: [modifiers] return_type MethodName([parameters]) { // Thân phương thức } Mỗi tham số có tên của kiểu của tham số và tên mà nó được kham khảo trong thân phương thức, và cả giá trị trả về nếu có. Thí dụ : public bool IsSquare(Rectangle rect) { return (rect.Height == rect.Width); } public bool IsPositive(int value) { if (value < 0) return false; return true; } Gọi Phương thức (Invoking Methods) Ví dụ dưới đây sẽ thực hiện việc gọi phương thức MathTest, đồng thời hướng dẫn cú pháp để gọi phương thức Phương thức MathTest sẽ được hàm Main() gọi khi nó cần. using System; namespace Wrox.ProCSharp.Basics { class MainEntryPoint { static void Main() { // Try calling some static functions Console.WriteLine("Pi is " + MathTest.GetPi()); int x = MathTest.GetSquareOf(5); Console.WriteLine("Square of 5 is " + x); // Instantiate at MathTest object MathTest math = new MathTest(); // this is C#'s way of // instantiating a reference type // Call non-static methods math.value = 30; Console.WriteLine( "Value field of math variable contains " + math.value); Console.WriteLine("Square of 30 is " + math.GetSquare()); } } // Define a class named MathTest on which we will call a method class MathTest { public int value; public int GetSquare() { return value*value; } public static int GetSquareOf(int x) { return x*x; } public static double GetPi() { return 3.14159; } } } Running the MathTest sample produces these results: csc MathTest.cs Microsoft (R) Visual C# .NET Compiler version 7.00.9466 for Microsoft (R) .NET Framework version 1.0.3705 Copyright (C) Microsoft Corporation 2001. All rights reserved. MathTest Pi is 3.14159 Square of 5 is 25 Value field of math variable contains 30 Square of 30 is 900 Download MathTest Truyền tham số cho Phương thức (Passing Parameters to Methods) Ví dụ sau đây hướng dẫn cách truyền tham số cho một phương thức: using System; namespace Wrox.ProCSharp.Basics { class ParameterTest { static void SomeFunction(int[] ints, int i) { ints[0] = 100; i = 100; } public static int Main() { int i = 0; int[] ints = { 0, 1, 2, 4, 8 }; // Hiển thị giá trị ban đầu Console.WriteLine("i = " + i); Console.WriteLine("ints[0] = " + ints[0]); Console.WriteLine("Calling SomeFunction "); // Sau khi phương thức này trả về, ints sẽ bị thay đổi // nhưng i thì không SomeFunction(ints, i); Console.WriteLine("i = " + i); Console.WriteLine("ints[0] = " + ints[0]); return 0; } } } Chạy chương trình được kết quả sau: csc ParameterTest.cs Microsoft (R) Visual C# .NET Compiler version 7.00.9466 for Microsoft (R) .NET Framework version 1.0.3705 Copyright (C) Microsoft Corporation 2001. All rights reserved. ParameterTest i = 0 ints[0] = 0 Calling SomeFunction i = 0 ints[0] = 100 . return true; } Gọi Phương thức (Invoking Methods) Ví dụ dưới đây sẽ thực hiện việc gọi phương thức MathTest, đồng thời hướng dẫn cú pháp để gọi phương thức Phương thức MathTest sẽ được hàm. và Java. Chỉ khác là mỗi phương thức được khai báo tách biệt public hoặc private. Không thể dùng public để nhóm các phương thức định nghĩa Ngoài ra tất cả các phương thức C# được định nghĩa. Phương thức Trong phần này chúng ta sẽ được học làm thế nào để định nghĩa các phương thức trong C#. Khai báo phương thức (Declaring Methods) Cú pháp