Trong C# các kiểu dữ liệu như int được lưu trữ trên Stack đây là vùng nhớ để lưu giá trị và vùng nhớ này được tham chiếu bởi tên của biến. Kiểu tham chiếu: được cấp phát trên Heap (FIFO). Khi một đối tượng được cấp phát trên Heap thì địa chỉ của nó được trả về và địa chỉ này được gán đến một tham chiếu.
Trang 1Đại học Hòa Bình 1/34
C#
1 Giới thiệu về ngôn ngữ lập trình C#
2 Kiểu dữ liệu – biến và toán tử trong C#
3 Cấu trúc điều khiển trong C#
4 Lớp và đối tượng trong C#
5 Tính kế thừa và đa hình trong C#
6 Các lớp trừu tượng và giao diện trong C#
7 Mảng trong C#
Trang 3Kiểu tham chiếu: được cấp phát trên Heap (FIFO).
Kiểu giá trị thì được lưu trữ trên Stack (LIFO)
Trong C# các kiểu dữ liệu như int được lưu trữ trên Stack đây là vùng nhớ để lưu giá trị và vùng nhớ này được tham chiếu bởi tên của biến
Khi một đối tượng được cấp phát trên Heap thì địa chỉ của nó được trả về và địa chỉ này được gán đến một tham chiếu
Trang 42 Kiểu dữ liệu – biến và toán tử trong C#
Trang 5Đại học Hòa Bình 5/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Trang 62 Kiểu dữ liệu – biến và toán tử trong C#
Kiểu float, double, và decimal đưa ra nhiều mức
độ khác nhau về kích thước cũng như độ chínhxác.Với thao tác trên các phân số nhỏ thì kiểu float là thích hợp nhất Tuy nhiên lưu ý rằng trình biên dịch luôn luôn hiểu bất cứ một số thực nào cũng là một số kiểu double trừ khi chúng ta khai báo rõ ràng Để gán một số kiểu float thì số phải có ký tự f theo sau
Chọn kiểu dữ liệu
Dựa vào độ lớn của giá trị muốn sử dụng
float sothuc = 32f;
Trang 7Đại học Hòa Bình 7/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Kiểu dữ liệu ký tự thể hiện các ký tự Unicode, bao
gồm các ký tự đơn giản, ký tự theo mã Unicode và
các ký tự thoát khác được bao trong những dấu
nháy đơn
Trang 82 Kiểu dữ liệu – biến và toán tử trong C#
Chuyển đổi các kiểu dữ liệu
Chuyển đổi tường minh
Chuyển đổi ngầm định (được thực hiện một
các tự động, trình biên dịch sẽ thực hiện)
Chuyển đổi ngầm định
Trang 9Đại học Hòa Bình 9/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Chuyển đổi không
tường minh
Chuyển đổi tường minh
(Ép kiểu)
Trang 102 Kiểu dữ liệu – biến và toán tử trong C#
Trang 11Đại học Hòa Bình 11/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Casting (Ép kiểu) chuyển đổi giữa các kiểu dữ liệu
có tính chất tương tự nhau (thường là số)
Parse là phương thức được sử dụng khá phổ biến khi
chúng ta muốn chuyển đổi một chuỗi sang một kiểu dữ liệu tương ứng
Trang 122 Kiểu dữ liệu – biến và toán tử trong C#
TryParse là phương thức được tích hợp sẵn trong các
lớp kiểu dữ liệu cơ bản của C#
- tham số thứ nhất là chuỗi cần chuyển đổi
- tham số thứ hai là biến sẽ chứa giá trị đã được
chuyển đổi, biến thứ hai này phải được đánh dấu là out
Cú pháp TryParse
TryParse sẽ trả về các giá trị true (chuyển đổi thành công) hoặc false (chuyển đổi không thành công, biến mang giá trị mặc định)
Trang 13chuyển đổi từ một kiểu dữ liệu này sang kiểu dữ liệu
khác Tham số mà các phương thức trong Convert nhận không nhất thiết phải là chuỗi mà có thể ở nhiều kiểu
dữ liệu khác nhau (int, bool, double…)
Trang 142 Kiểu dữ liệu – biến và toán tử trong C#
Biến
Một biến là một vùng lưu trữ với một kiểu dữ liệu
Để tạo một biến chúng ta phải khai báo kiểu của
biến và gán cho biến một tên duy nhất
Cú pháp:
[ modifier ] datatype identifer ;
– modifier : public, private, protected
– datatype: int , long , float
– identifier: Tên biến
int tuoi;
float diem;
double tien;
string ten;
Trang 15Đại học Hòa Bình 15/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Lưu ý: Trước khi sử dụng một biến, thì biến đó phải
được khởi tạo
Ví dụ:
– int x; //Khai báo biến trước
– x = 5; // Khởi gán giá trị và sử dụng
– int x = 1 //Khai báo và khởi gán cùng lúc
– int x = 10, y = 20; //Khai báo nhiều biến
Trang 162 Kiểu dữ liệu – biến và toán tử trong C#
Hằng là một biến nhưng giá trị của hằng không thay đổi
const int a = 100;
// giá trị này không thể bị thay đổi
Hằng bắt buộc phải được gán giá trị lúc khai báo
Mỗi khi đã được gán thì không thể được viết
đè giá trị khác lên
Giá trị của hằng phải được tính toán vào lúc biên
dịch → vậy không thể gán giá trị của hằng từ giá trị của biến
Hằng mặc định là static, tuy nhiên ta không thể
đưa từ khoá static vào khi khai báo hằng
Trang 17Đại học Hòa Bình 17/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Hằng làm cho chương trình đọc dễ dàng hơn, bằng
cách thay thế những con số bằng những tên mang có ý nghĩa
Hằng làm cho dễ sửa chương trình hơn
Hằng làm cho việc tránh lỗi dễ dàng hơn, nếu
gán một trị khác cho một hằng trình biên
dịch sẽ thông báo lỗi
Hằng được phân thành ba loại: giá trị hằng (literal), biểu tượng hằng (symbolic constants),
kiểu liệu kê (enumerations)
Hằng
Trang 182 Kiểu dữ liệu – biến và toán tử trong C#
Giá trị hằng: x = 100;
Biểu tượng hằng: gán tên cho giá trị của hằng,
để tạo một biểu tượng hằng dùng từ khóa const
và cú pháp sau:
<const> <type> <tên hằng> = <giá trị>;
const int DoSoi = 100;
Trang 19Đại học Hòa Bình 19/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Trang 202 Kiểu dữ liệu – biến và toán tử trong C#
Kiểu liệt kê là tập hợp các tên hằng có giá trị
không thay đổi (thường được gọi làdanh sách liệt kê)
[thuộc tính] [bổ sung] enum <tên liệt kê> [:kiểu cơ sở] {danh sách các thành phần liệt kê}
Trang 21Đại học Hòa Bình 21/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Trang 222 Kiểu dữ liệu – biến và toán tử trong C#
Mỗi thành phần trong kiểu liệt
kê tương ứng với một giá trị số,
trong trường hợp này là một số
Kiểu liệt kê là một kiểu hình thức
do đó bắt buộc phải thực hiện
phép chuyển đổi tường minh với
các kiêu giá trị nguyên:
int x = (int) ThuTu.Thu_Nhat;
Trang 23Một hằng chuỗi được tạo bằng cách đặt các chuỗi
trong dấu nháy đôi: “Xin chao”
Đây là cách chung để khởi tạo một chuỗi ký tự với giá trị hằng: string chuoi = “Xin chao”
Trang 242 Kiểu dữ liệu – biến và toán tử trong C#
Khoảng trắng (whitespace)
Trong ngôn ngữ C#, những khoảng trắng, khoảng tab và các dòng được xem như là khoảng trắng
(whitespace) → C# sẽ bỏ qua tất cả các khoảng
trắng đó, vậy có thể viết như sau:
trong C# câu lệnh được kết thúc với dấu chấm phẩy ‘;’ Do vậy có thể một câu lệnh trên nhiều dòng, và một dòng có thể nhiều câu lệnh nhưng nhất thiết là hai câu lệnh phải cách nhau một dấu chấm phẩy
Trang 25Đại học Hòa Bình 25/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Toán tử trong C#
toán tử gán, toán tử toán học, toán tử quan hệ, logic
được kí hiệu bằng một biểu tượng dùng để thực hiện một hành động
Trang 262 Kiểu dữ liệu – biến và toán tử trong C#
Trang 27Đại học Hòa Bình 27/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Trang 282 Kiểu dữ liệu – biến và toán tử trong C#
Toán tử quan hệ
Trang 29Đại học Hòa Bình 29/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Toán tử logic
Trang 302 Kiểu dữ liệu – biến và toán tử trong C#
Trang 31Đại học Hòa Bình 31/34
2 Kiểu dữ liệu – biến và toán tử trong C#
Toán tử gán
Trang 322 Kiểu dữ liệu – biến và toán tử trong C#
Loại toán tử Toán tử Tính kết hợp
Một ngôi - , ++ , phải sang trái
Hai ngôi ^ trái sang phải
*, /, % +, -
= phải sang trái
Độ ưu tiên của toán tử (Precedence)
Thứ tự ưu tiên giữa các kiểu toán tử khác nhau
Thứ tự Kiểu toán tử
2 So sánh (quan hệ)
Trang 33Đại học Hòa Bình 33/34
2 Kiểu dữ liệu – biến và toán tử trong C#
1 Cho biết giá trị CanhCut trong liệt kê sau:
enum LoaiChim{
HaiAu,BoiCa,DaiBang = 50,CanhCut
}
Câu hỏi
2 Tạo một Console application để tính cộng, trừ,
nhân, chia và lấy phần dư của 2 số được nhập giá trị từ bàn phím
Trang 342 Kiểu dữ liệu – biến và toán tử trong C#
3 Viết một chương trình để chuyển đơn vị tiền tệ
Trang 35Đại học Hòa Bình 35/34