Cơ bản về C#: Khai báo biến, phạm vi và hằng số

Trong phần này, chúng ta sẽ tìm hiểu các kiến thức nền tảng của C#, bao gồm cách khai báo biến, khởi tạo biến, phạm vi sử dụng, các kiểu dữ liệu có sẵn trong C#, câu lặp và điều kiện, enum, namespace, phương thức Main(), định danh và từ khóa C#, quy tắc và quy ước mã hóa C#, v.v.

Đầu tiên, chúng ta bắt đầu với ví dụ kinh điển "Hello World".

Tạo một tệp .txt và đổi tên thành test.cs. Sau đó nhập nội dung sau:

Code<br></br>using System;<br></br>namespace learnvn.net<br></br>{<br></br>    class HelloWorldProgram<br></br>    {<br></br>        static void Main()<br></br>        {<br></br>            Console.WriteLine("Xin chao the gioi !");<br></br>        }<br></br>    }<br></br>}<br></br>

Sau đó, mở trình biên dịch dòng lệnh C# để biên dịch tệp này. Trong dòng lệnh C#, nhập:

csc test.cs

Sau khi biên dịch thành công, một tệp test.exe sẽ được tạo trong thư mục chứa tệp. Tiếp tục nhập test.exe trong dòng lệnh C# để chạy tệp test.exe, kết quả sẽ là Xin chao the gioi ! (Lưu ý: Dòng lệnh C# có thể tìm thấy trong Bắt đầu - Chương trình - Microsoft .NET Framework SDK v2.0 - SDK Command Prompt)

Trong ví dụ trên, chúng ta cần lưu ý một số điểm:

  • Câu lệnh using System; được sử dụng để nhập lớp cơ sở System. Tương tự như import trong Java, đây là lớp cơ sở của C# và tất cả các công việc trong C# đều phụ thuộc vào lớp này.
  • Câu lệnh namespace learnvn.net là không gian tên mà chúng ta đã đề cập trước đây, không gian tên là learnvn.net, tất nhiên bạn có thể đặt tên bất kỳ gì. Tuy nhiên, để tránh xung đột, chúng ta thường sử dụng tên miền của công ty làm không gian tên.
  • Câu lệnh class HelloWorldProgram là khai báo một lớp có tên HelloWorldProgram.
  • Câu lệnh static void Main() là phương thức chính của chương trình, lưu ý rằng chữ cái đầu của phương thức Main() được viết hoa.
  • Câu lệnh Console.WriteLine("Xin chao the gioi !"); là câu lệnh xuất ra màn hình, Console.WriteLine là một phương thức trong lớp cơ sở.

Trong C#, giống như nhiều ngôn ngữ khác (C, Java, v.v.), mỗi câu kết thúc bằng dấu chấm phẩy ";", và mã chương trình được đặt trong cặp ngoặc nhọn {}.

I. Biến

1.1 Khai báo biến

Trong C#, chúng ta sẽ minh họa việc khai báo biến bằng ví dụ, ví dụ: int so; câu này khai báo một biến có kiểu int (số nguyên) tên là so. Tương tự, string ten; câu này khai báo một biến có kiểu string (chuỗi) tên là ten.

1.2 Khởi tạo biến

Trình biên dịch C# yêu cầu mỗi biến phải có giá trị khởi tạo trước khi sử dụng.

Khi khởi tạo biến trong C#, có hai điểm cần lưu ý:

A. Nếu biến là trường (field) trong lớp hoặc cấu trúc, và không được khởi tạo rõ ràng, thì theo mặc định, khi tạo các biến này, giá trị khởi tạo của chúng là 0. Ví dụ trong đoạn mã sau:

Code<br></br>using System;<br></br>namespace learnvn.net<br></br>{<br></br>    class DemoBien<br></br>    {<br></br>        static int giaTriMacDinh;<br></br>        static void Main()<br></br>        {            <br></br>            Console.WriteLine(giaTriMacDinh);<br></br>        }<br></br>    }<br></br>}<br></br>

Chúng ta đã khai báo một biến giaTriMacDinh trong lớp, sau đó xuất giá trị của biến này. Sau khi biên dịch và chạy, chúng ta sẽ thấy kết quả xuất ra là 0.

B. Các biến trong phương thức phải được khởi tạo rõ ràng, nếu không, khi sử dụng biến đó sẽ xảy ra lỗi. Ví dụ trong đoạn mã sau: sẽ báo lỗi khi biên dịch. Chúng ta cần khởi tạo rõ ràng int y = 10; thì mới biên dịch được.

Code<br></br>using System;<br></br>namespace learnvn.net<br></br>{<br></br>    class BienVaPhamVi<br></br>    {<br></br>        static void Main()<br></br>        {<br></br>            int chuaKhoiTao;<br></br>            Console.WriteLine(chuaKhoiTao);<br></br>        }<br></br>    }<br></br>}<br></br>

1.3 Phạm vi của biến

Phạm vi của biến là khu vực mã có thể sử dụng biến đó. Nhìn chung, có các quy tắc sau để xác định phạm vi:

A. Miễn là lớp chứa biến nằm trong một phạm vi nhất định, các trường của lớp (còn gọi là biến thành viên) cũng nằm trong phạm vi đó.

B. Biến cục bộ tồn tại trong phạm vi từ câu lệnh khai báo biến đến dấu ngoặc nhọn đóng của khối chứa nó.

C. Các biến được khai báo trong vòng lặp for, while chỉ tồn tại trong thân vòng lặp đó.

Khi sử dụng biến, có thể xảy ra xung đột tên, trước hết, chúng ta xem xét xung đột phạm vi của biến cục bộ. Ví dụ trong đoạn mã sau:

Code<br></br>using System;<br></br>namespace learnvn.net<br></br>{<br></br>    class PhamViBien<br></br>    {<br></br>        static void Main()<br></br>        {            <br></br>            for(int dem=0;dem<10;dem++)<br></br>            {<br></br>                Console.WriteLine(dem);<br></br>            }<br></br><br></br>            for(int dem=0;dem<20;dem++)<br></br>            {<br></br>                Console.WriteLine(dem);<br></br>            }<br></br>        }<br></br>    }<br></br>}<br></br><br></br>

Cả hai vòng lặp đều sử dụng biến dem, nhưng cả hai đều xuất ra bình thường vì phạm vi của mỗi biến dem nằm trong vòng lặp tương ứng.

Xem ví dụ mã sau:

Code<br></br>using System;<br></br>namespace learnvn.net<br></br>{<br></br>    class XungDotTenBien<br></br>    {<br></br>        static void Main()<br></br>        {<br></br>int bienToanCuc = 5;<br></br>            for(int i=0;i<10;i++)<br></br>            {<br></br>                int bienToanCuc = 20;<br></br>                Console.WriteLine(i + bienToanCuc);<br></br>            }<br></br> <br></br>        }<br></br>    }<br></br>}<br></br>

Đoạn mã này sẽ báo lỗi khi biên dịch, vì biến bienToanCuc đầu tiên có phạm vi toàn bộ phương thức Main(), do đó nó cũng có hiệu lực trong vòng lặp. Vì vậy, khi khai báo một biến cùng tên bienToanCuc bên trong vòng lặp, sẽ xảy ra lỗi.

Xem ví dụ mã sau:

Code<br></br>using System;<br></br>namespace learnvn.net<br></br>{<br></br>    class BienVaPhamVi<br></br>    {<br></br>        int bienThanhVien = 30;<br></br>        static void Main()<br></br>        {<br></br>            int bienLocal = 20;<br></br>            int soThuTu = 5;<br></br>            Console.WriteLine(soThuTu + bienLocal); <br></br>        }<br></br>    }<br></br>}<br></br>

Trong đoạn mã này, biến bienThanhVien đầu tiên có phạm vi toàn bộ lớp, tức là trường của lớp. Việc khai báo biến bienLocal thứ hai sẽ không ảnh hưởng đến biến bienThanhVien, vì vậy chương trình sẽ xuất ra 25.

1.4 Hằng số

Khi khai báo biến, thêm từ khóa const trước biến có thể biến nó thành một hằng số.

Ở đây có một số điểm cần lưu ý:

A. Hằng số phải được khởi tạo ngay tại thời điểm khai báo, và sau khi gán giá trị thì không thể thay đổi được nữa.

B. Hằng số luôn có tính static, không cần thêm từ khóa static khi khai báo hằng số.

Thẻ: C# biến hằng số phạm vi biến

Đăng vào ngày 23 tháng 6 lúc 01:06