1. Phương thức trong C# là tập hợp dòng lệnh, mỗi lệnh nhằm thực hiện một nghiệp vụ nào đó, mỗi phương thức sẽ có tên đặt không được trùng nhau trong phạm vi của phần mềm, để nói lên phương thức đó làm một nghiệp nào trong phần mềm.
Ví dụ như khi làm phần mềm quản lý kho bạn tạo ra 1 phương tính tồn kho cho 1 hàng hòa nào đó thì các dòng lệnh trong phương thức chỉ làm việc với nghiệp vụ tính kho và trả về 1 giá trị là số lượng tồn khi, và phương thước này sẽ được sử dụng lặp đi lặp lại tại các chức năng (form) của phần mềm.
public static double GetTonKho(string maHang)
{
....
}
Phương thức GetTonKho được sử dụng tại nhiều form trong phần mềm.
2. Cú pháp viết phương thức trong C#
pham_vi_truy_cập kiểu_dữ_liệu_trả_về tên_phương_thức(danh_sách_tham_số) {
// Phần thân hàm
}
[public|protected|private] <kiểu trả về> <tên phương thức>([danh sách tham số])
{
[code c#];
[return [giá trị];
}
3. Trong thực thế khi viết phần mềm có 3 kiểu phương thức viết hay sử dụng
Public static int tinhtong(int a,int b)
{
int c=a+b;
return c;
}
Public static void GhiFileLog(string strErrr)
{
... Code luu xuong file Log
..có 2 cách ghi file log
- phần mềm nhỏ: text
- phần mềm lớn: SQL
- lưu nhật ký lỗi
Ngày giờ lỗi , Mô tả lỗi , Tên class, tên phương thức
2024/6/9 Null tungay NhanVien TinhLuong
Select * from tbLog Order by NgayPhatSinhLoi Desc
}
Public static void demSoLanChayPhanMem()
{
... Code tang so lan chay phan mem
}
Các phương thức trên là minh họa 1 nghiệp vụ code nào đó, trong thực tế còn nhiều nghiệp vụ khác.
Cách sử dụng tham số truyền vào trong phương thức
Cách gọi phương thức: Truyền tham số từ khóa ref
Ví dụ phương thức cơ bản nhất trong C#
static void Main(string[] args)
{
tong(1, 3);
Console.ReadLine();
}
static void tong(int a, int b)
{
Console.WriteLine(a+b);
}
Gợi ý: Trên thực tế thì hàm WriteLine chỉ dùng trong Console, nếu viết cách trên thì chỉ trong lúc nghiên cứu học lập trình c#
Về khi làm phần mềm thực tế c# thì không ai viết kiểu như trên, bởi vì 1 phương thức viết ra thì người lập trình viên c# phải nghĩ được là phương thức viết ra phải dùng chung cho nhiều trường hợp, đó là cái khó của người lập trình, bạn cần phải có kinh nghiệm trong nhiều năm để đạt được level này.
Ví dụ c# : bạn hãy cho 1 nhận xét, có khác gì với cách viết trên.
static void Main(string[] args)
{
int kq=tong(1, 3);
Console.WriteLine(kq);
Console.ReadLine();
}
static int tong(int a, int b)
{
return a+b;
}
4. Tham số truyền vào trong c#
Cải tiến trong C#, vb không có cái phương thức có tham số tùy chọn.
static void tong(int a, int b)
{
Console.WriteLine(a + b);
}
static void tong(string a, string b)
{
Console.WriteLine( int.Parse(a) + int.Parse(b));
}
static void tong(int a, int b,int c)
{
Console.WriteLine(a + b+c);
}
Tại sao trong lập trình C# sinh ra kiểu 1 phương thức có thể tùy chọn nhiều tham số truyền vào ?
static void Main(string[] args)
{
int kq = tong(2, 3, 4, 5, 4);
Console.WriteLine(kq);
Console.ReadLine();
}
static int tong(params int[] so)
{
int tong = 0;
foreach(var it in so)
{
tong += it;
}
return tong;
}
Bây giờ bạn hãy sửa lại đoạn code C# trên, xóa đi params , chạy xem được không, vì sao ?
-- Lỗi , bay giờ sửa lại không có params mà chạy được trong C#
static void Main(string[] args)
{
int[] so = { 10, 20, 30, 40 };
int kq =tong(so);
Console.WriteLine(kq);
}
static int tong( int[] so)
{
int tong = 0;
foreach (var it in so)
{
tong += it;
}
return tong;
}
--> Quay lại về ban đầu.
static void Main(string[] args)
{
int a = 2;
int b = 3;
int kq = tong(ref a,ref b);
Console.WriteLine(kq);
Console.ReadLine();
}
static int tong(ref int a,ref int b)
{
return a + b;
}
// Có nghiệp: xếp giao
// viết 1 phương thức KO ĐƯỢC TRẢ VỀ GIÁ TRỊ
// như vẫn trả về được kết quả 2 tổng số với nhau
static void Main(string[] args)
{
int a = 4;
int b = 7;
int tong = 0;
tinhtong(a, b, ref tong);
Console.WriteLine(tong);
Console.ReadLine();
}
static void tinhtong(int a,int b,ref int c)
{
c = a + b;
}
static void Main(string[] args)
{
// Có nghiệp: xếp giao
// viết 1 phương thức KO ĐƯỢC TRẢ VỀ GIÁ TRỊ
// như vẫn trả về được kết quả 2 tổng số với nhau
int a = 4;
int b = 7;
int tong = 0;
int nhan = 0;
tinhtong(a, b, ref tong,ref nhan);
Console.WriteLine("Tong:"+tong);
Console.WriteLine("Nhan:"+tong);
Console.ReadLine();
}
static void tinhtong(int a,int b,ref int c,ref int d)
{
c = a + b;
d = a * b;
}