Cấu trúc một chương trình C# đơn giản
Để bắt đầu cho việc tìm hiểu ngôn ngữ C# và tạo tiền đề cho các chương sau, chương đầu tiên trình bày một chương trình C# đơn giản nhất. Ví dụ : Chương trình C# đầu tiên. --------------------------------------------------- ...
Để bắt đầu cho việc tìm hiểu ngôn ngữ C# và tạo tiền đề cho các chương sau, chương đầu tiên trình bày một chương trình C# đơn giản nhất.
Ví dụ : Chương trình C# đầu tiên.
-----------------------------------------------------------------------------
class ChaoMung
{
static void Main( )
{
// Xuat ra man hinh
System.Console.WriteLine(“Hello World”);
}
}
-----------------------------------------------------------------------------
Kết quả:
Hello World
-----------------------------------------------------------------------------
Sau khi viết xong chúng ta lưu dưới dạng tập tin có phần mở rộng *.cs
(C sharp). Sau đó biên dịch và chạy chương trình. Kết quả là một chuỗi “Hello World” sẽ xuất hiện trong màn hình console.
∃ Từ ví dụ trên ta nhận thấy rằng một chương trình C# đơn có ít nhất là một lớp. Mỗi lớp được bắt đầu bằng từ khoá class kế đó là tên lớp do chúng ta đặt, bên trong một lớp có thể khai báo các biến(thành phần dữ liệu) và các hàm(phương thức). Trong số các hàm bên trong lớp có một hàm tên là Main. Hàm này có đặc điểm khi một chương trình C# được gọi ra thực hiện thì máy sẽ tiến hành thực hiện từ câu lệnh đầu tiên của hàm Main và khi màn Main kết thúc thì chương trình C# cũng kết thúc. Điều đó chứng tỏ hàm Main là hàm chính của chương trình C#. Một chương trình C# muốn thực hiện được thì phải có một hàm Main và chỉ có duy nhất một hàm Main trong toàn bộ hệ thống chương trình và hàm này sẽ gọi các hàm khác ra để thực hiện yêu cầu bài toán. Hàm Main được khai báo như sau:
static void Main( )
{
// Các câu lệnh
}
Chú ý: - Hàm Main có thể có dạng thể hiện khác chúng ta sẽ tìm hiểu sau
- Nếu trong một chương trình C# mà không có hàm Main đặt trong một lớp nào đó thì chương trình C# này không thể thực hiện được
Một số khái niệm cơ bản
Ghi chú: Một chương trình được viết tốt thì cần phải có chú thích các đoạn mã được viết. Các đoạn chú thích này sẽ không được biên dịch và cũng không tham gia vào chương trình. Mục đích chính là làm cho đoạn mã nguồn rõ ràng và dễ hiểu.
Trong ví dụ trên có một dòng chú thích :
// Xuat ra man hinh.
Một chuỗi chú thích trên một dòng thì bắt đầu bằng ký tự “//”. Khi trình biên dịch gặp hai ký tự này thì sẽ bỏ qua dòng đó.
Ngoài ra C# còn cho phép kiểu chú thích cho một hay nhiều dòng, và ta phải khai báo “/*” ở phần đầu chú thích và kết thúc chú thích là ký tự “*/”.
Ví dụ : Minh họa dùng chú thích trên nhiều dòng.
-----------------------------------------------------------------------------
class ChaoMung
{
static void Main()
{
/* Xuat ra man hinh chuoi ‘chao mung’
Su dung ham WriteLine cua lop System.Console
*/
System.Console.WriteLine(“Hello World”);
}
}
-----------------------------------------------------------------------------
Kết quả:
Hellp World
-----------------------------------------------------------------------------
Ngoài hai kiểu chú thích trên giống trong C/C++ thì C# còn hỗ trợ thêm kiểu thứ ba cũng là kiểu cuối cùng, kiểu này chứa các định dạng XML nhằm xuất ra tập tin XML khi biên dịch để tạo sưu liệu cho mã nguồn.
///XML Chú thích tài liệu 1 dòng định dạng theo XML
/**XML Chú thích nhiều dòng định dạng theo XML**/
Ứng dụng Console: Là cách xây dựng ứng dụng giao tiếp với người dùng thông quan bàn phím và không có giao diện người dùng (UI), giống như các ứng dụng thường thấy trong Windows. Trong các chương xây dựng các ứng dụng nâng cao trên Windows hay Web thì ta mới dùng các các giao diện đồ họa. Còn để tìm hiểu về ngôn ngữ C# thuần tuý thì cách tốt nhất là ta viết các ứng dụng console.
Trong hai ứng dụng đơn giản trên ta đã dùng phương thức WriteLine() của lớp Console. Phương thức này sẽ xuất ra màn hình dòng lệnh hay màn hình DOS chuỗi tham số đưa vào, cụ thể là chuỗi “Hello World”.
Từ khóa using: Để làm cho chương trình gọn hơn, và không cần phải viết từng namespace(ta tìm hiểu khai niệm này sau) cho từng đối tượng, C# cung cấp từ khóa là using, sau từ khóa này là một namespace hay subnamespace với mô tả đầy đủ trong cấu trúc phân cấp của nó.
Ta có thể dùng dòng lệnh :
using System;
Ở đầu chương trình và khi đó trong chương trình nếu chúng ta có dùng đối tượng Console thì không cần phải viết đầy đủ : System.Console. mà chỉ cần viết Console. thôi.
Ví dụ: Dùng khóa using
-----------------------------------------------------------------------------
using System;
class ChaoMung
{
static void Main()
{
//Xuat ra man hinh chuoi thong bao
Console.WriteLine(“Hello World”);
}
}
-----------------------------------------------------------------------------
Kết quả:
Hello World
-----------------------------------------------------------------------------
Lưu ý rằng phải đặt câu using System trước định nghĩa lớp ChaoMung.
Mặc dù chúng ta chỉ định rằng chúng ta sử dụng namespace System, và không giống như các ngôn ngữ khác, không thể chỉ định rằng chúng ta sử dụng đối tượng System.Console.
Ví dụ : Không hợp lệ trong C#.
-----------------------------------------------------------------------------
using System.Console;
class ChaoMung
{
static void Main()
{
//Xuat ra man hinh chuoi thong bao
WriteLine(“Hello World”);
}
}
-----------------------------------------------------------------------------
Đoạn chương trình trên khi biên dịch sẽ được thông báo một lỗi như sau:
error CS0138: A using namespace directive can only be applied to namespace;
‘System.Console’ is a class not a namespace.
Cách biểu diễn namespace có thể làm giảm nhiều thao tác gõ bàn phím, nhưng nó có thể sẽ không đem lại lợi ích nào bởi vì nó có thể làm xáo trộn những namespace có tên không khác nhau. Giải pháp chung là chúng ta sử dụng từ khóa using với các namespace đã được xây dựng sẵn, các namespace do chúng ta tạo ra, những namespace này chúng ta đã nắm chắc sưu liệu về nó. Còn đối với namespace do các hãng thứ ba cung cấp thì chúng ta không nên dùng
từ khóa using.
Dấu chấm phẩy(;) : Trong C# quy ước kết thúc mỗi câu lệnh ta phải dùng dấu chấm phẩy( ;)