Biến trong C#
Một biến là không gì khác ngoài một tên được cung cấp cho khu vực lưu giữ mà chương trình có thể thao tác. Mỗi biến trong C# có một kiểu cụ thể, mà quyết định kích cỡ và cách bố trí bộ nhớ của biến đó, cách dãy giá trị có thể được lưu giữ trong bộ nhớ đó, và cách tập hợp các hoạt động có thể được áp dụng tới biến đó.
Các kiểu giá trị cơ bản trong C# có thể được phân chia thành:
Kiểu dữ liệu | Ví dụ |
---|---|
Kiểu số nguyên | sbyte, byte, short, ushort, int, uint, long, ulong, và char |
Kiểu số thực dấu chấm động | float và double |
Kiểu thập phân | decimal |
Kiểu Boolean | true hoặc false |
Kiểu Nullable | Kiểu dữ liệu Nullable |
C# cũng cho phép định nghĩa các kiểu giá trị khác của biến như kiểu enum và các kiểu tham chiếu của biến như class, sẽ được bàn luận trong các chương tới.
Định nghĩa biến trong C#
Cú pháp để định nghĩa biến trong C# là:
<kiểu_dữ_liệu> <danh_sách_biến>;
Ở đây, kiểu_dữ_liệu phải là một kiểu dữ liệu hợp lệ trong C#, gồm: char, int, double hoặc bất kỳ kiểu dữ liệu tự định nghĩa (user-defined) nào và danh_sách_biến có thể chứa một hoặc nhiều tên định danh được phân biệt bởi dấu phảy.
Dưới đây là một số định nghĩa biến hợp lệ trong C#:
int i, j, k; char c, ch; float f, salary; double d;
Bạn có thể khởi tạo một biến tại thời điểm định nghĩa, như sau:
int i = 100;
Khởi tạo biến trong C#
Biến được khởi tạo (được gán một giá trị) với một dấu bằng được theo sau bởi một biểu thức hằng. Form chung cho khởi tạo biến trong C# là:
tên_biến = giá_trị;
Các biến có thể được khởi tạo trong khai báo của chúng. Phần khởi tạo gồm một dấu bằng được theo sau bởi một biểu thức hằng, như sau:
<kiểu_dữ_liệu> <tên_biến> = giá_trị;
Một số ví dụ về khởi tạo biến trong C# là:
int d = 3, f = 5; /* khai báo và khởi tạo biến d và f. */ byte z = 22; /* khai báo và khởi tạo biến z. */ double pi = 3.14159; /* khai báo và khởi tạo biến pi */ char x = 'x'; /* khai báo và khởi tạo biến ký tự x. */
Việc khởi tạo biến một cách chính xác là một bài thực hành tốt cho bạn, nếu không thì chương trình có thể tạo ra kết quả không mong đợi.
Ví dụ sau sử dụng các kiểu biến đa dạng trong C#:
using System; namespace VietJackCsharp { class TestCsharp { static void Main(string[] args) { Console.WriteLine("Khai bao va khoi tao bien trong C#"); Console.WriteLine("----------------------------------"); //khai bao bien short a; int b; double c; /* khoi tao bien */ a = 10; b = 20; c = a + b; Console.WriteLine("a = {0}, b = {1}, c = {2}", a, b, c); Console.ReadLine(); Console.ReadKey(); } } }
Biên dịch và chạy chương trình C# trên sẽ cho kết quả sau:
Nhận giá trị từ người dùng trong C#
Lớp Console trong System namespace cung cấp hàm ReadLine() để nhận đầu vào từ người dùng (chẳng hạn nhập từ bàn phím) và lưu nó vào trong một biến.
Ví dụ:
int num; num = Convert.ToInt32(Console.ReadLine());
Hàm Convert.ToInt32() chuyển đổi dữ liệu đã nhập bởi người dùng thành kiểu dữ liệu int, bởi vì Console.ReadLine() chấp nhận dữ liệu trong định dạng chuỗi.
Biểu thức lvalue và rvalue trong C#
Có hai loại biểu thức trong C#:
lvalue: Một biểu thức mà là một lvalue có thể xuất hiện hoặc bên trái hoặc bên phải của phép gán trong C#.
rvalue: Một biểu thức mà là một rvalue có thể xuất hiện bên phải nhưng không thể ở bên trái của một phép gán trong C#.
Các biến là lvalue và vì thế chúng có thể xuất hiện ở bên trái của một phép gán. Các hằng số là rvalue và vì thế chúng không thể được gán và không thể xuất hiện ở bên trái của một phép gán. Sau đây là một lệnh hợp lệ trong C#:
int g = 20;
Nhưng lệnh sau là không hợp lệ và sẽ tạo một Compile-time error trong C#:
10 = 20;