Ngôn Ngữ Lập Trình C#
Phương thức được sử dụng để đọc một số nguyên là ReadInt32, chúng ta sử dụng kiểu tên
của Framework tốt hơn là kiểu do C# đưa ra. Nên nhớ rằng, tất cả những lớp từ Framework
điều được gọi bởi ngôn ngữ C# và chúng không phải là một bộ phận của ngôn ngữ C#.
Những lớp này còn được sử dụng tốt bởi những ngôn ngữ khác C#.
Ngoài ra lớp BinaryReader còn có những phương thức khác để thực hiện việc đọc các kiểu dữ
liệu khác nhau. Những phương thức đọc này được sử dụng cùng với cách mà ReadInt32 được
sử dụng trong chương trình. Bảng 12.4 sau liệt kê một số phương thức dùng để đọc các kiểu
dữ liệu.
Phương thức Ý nghĩa
Read Đọc những ký tự và chuyển vị trí đọc sang vị trí tiếp theo.
Phương thức này được nạp chồng gồm 3 phương thức.
ReadBoolean Đọc một giá trị boolean từ luồng hiện thời và chuyển vị trí đọc
sang một byte.
ReadByte Đọc byte kế tiếp từ luồng hiện thời và chuyển vị trí đọc sang 1
byte.
ReadBytes Đọc n byte từ luồng hiện thời sang một mảng byte và chuyển vị
trí đọc sang n byte.
ReadChar Đọc vị trí kế tiếp trong luồng hiện hành và chuyển vị trí đọc của
luồng theo sau sử dụng mã hóa và ký tự xác định được đọc từ
luồng.
ReadChars Đọc n ký tự từ luồng hiện hành vào một mảng n ký tự. Và
chuyển vị trí đọc của luồng theo sau sử dụng mã hóa và ký tự
xác định được đọc từ luồng.
ReadDecimal Đọc giá trị decimal và chuyển vị trí đọc sang 16 byte.
ReadDouble Đọc giá trị thực 8 byte và chuyển vị trí đọc sang 8 byte.
ReadInt16 Đọc giá trị 2 byte integer có dấu và chuyển vị trí đọc sang 2
byte.
ReadInt32 Đọc giá trị 4 byte integer có dấu và chuyển vị trí đọc sang 4
byte.
ReadInt64 Đọc giá trị 8 byte integer có dấu và chuyển vị trí đọc sang 8 byte
Câu hỏi thêm
Câu hỏi 1: Để truy xuất thời gian của đồng hồ hệ thống chúng ta phải dùng lớp nào?
Câu hỏi 2: Thông tin về máy tính có thể được truy xuất thông qua lớp nào?
Câu hỏi 3: Tham số dòng lệnh là gì? Làm thế nào để lấy được tham số dòng lệnh?
Câu hỏi 4: Lớp thao tác các phép toán học cơ bản? Chúng ta có thể tạo thể hiện của lớp này
hay không?
Câu hỏi 5: Lớp thao tác tập tin File chứa trong namespace nào? Các thao tác chính được
thực hiện trên tập tin?
Câu hỏi 6: Lớp nào cung cấp các thông tin về tập tin? Các phương thức chính của lớp này?
Câu hỏi 7: Luồng là gì? Phân biệt giữa tập tin và luồng?
Câu hỏi 8: Có mấy cách thức tạo tập tin? Cho biết thứ tự đọc của một tập tin?
Câu hỏi 9: Sự khác nhau giữa lớp File và FileInfo? Khi nào thì sử dụng lớp File tốt hơn là
sử dụng FileInfo?
Câu hỏi 10: Khi tạo một tập tin mới trùng với tên của một tập tin cũ trong cùng một vị trí thư
mục thì chuyện gì xảy ra?
Câu hỏi 11: Nếu muốn viết dữ liệu đã định dạng như là kiểu số thì dùng cách viết vào tập tin
dạng nào?
Bài tập
Các Lớp Cơ Sở .NET
363
.
.
Ngôn Ngữ Lập Trình C#
Bài tập 1: Viết một chương trình minh họa việc truy xuất thông tin hệ thống của máy tính
đang sử dụng. Thông tin này bao gồm: tên máy tính, hệ điều hành, bộ nhớ, đĩa cứng
Bài tập 2: Viết chương trình minh họa một máy tính cá nhân cho phép thực hiện các phép
toán cơ bản. Chương trình hiện ra một menu các lệnh và mỗi lệnh được gán cho một số: như
công thì số 1, trừ số 2, nhân 3, Cho phép người dùng chọn một lệnh thông qua nhập vào số
tương ứng. Sau đó cho người dùng nhập vào từng toán hạng rồi thực hiện phép toán và cuối
cùng in kết quả ra màn hình.
là chúng ta nên sửa chữa những bug này.
Một lỗi có nguyên nhân là do phía hành động của người sử dụng. Ví dụ, người sử dụng
nhập vào một số nhưng họ lại nhập vào ký tự chữ cái. Một lần nữa, lỗi có thể làm xuất hiện
ngoại lệ, nhưng chúng ta có thể ngăn ngừa điều này bằng cách bắt giữ lỗi với mã hợp lệ.
Những lỗi có thể được đoán trước và được ngăn ngừa.
Thậm chí nếu chúng ta xóa tất cả những bug và dự đoán tất cả các lỗi của người dùng,
chúng ta cũng có thể gặp phải những vấn đề không mong đợi, như là xuất hiện trạng thái
thiếu bộ nhớ (out of memory), thiếu tài nguyên hệ thống, những nguyên nhân này có thể do
các chương trành khác cùng hoạt động ảnh hưởng đến. Chúng ta không thể ngăn ngừa các
ngoại lệ này, nhưng chúng ta có thể xử lý chúng để chúng không thể làm tổn hại đến chương
trình.
Khi một chương trình gặp một tình huống ngoại lệ, như là thiếu bộ nhớ thì nó sẽ tạo một
ngoại lệ. Khi một ngoại lệ được tạo ra, việc thực thi của các chức năng hiện hành sẽ bị treo
cho đến khi nào việc xử lý ngoại lệ tương ứng được tìm thấy.
Xử Lý Ngoại Lệ
365
.
.
Ngôn Ngữ Lập Trình C#
Điều này có nghĩa rằng nếu chức năng hoạt động hiện hành không thực hiện việc xử lý
ngoại lệ, thì chức năng này sẽ bị chấm dứt và hàm gọi sẽ nhận sự thay đổi đến việc xử lý
ngoại lệ. Nếu hàm gọi này không thực hiện việc xử lý ngoại lệ, ngoại lệ sẽ được xử lý sớm
bởi CLR, điều này dẫn đến chương trình của chúng ta sẽ kết thúc.
Một trình xử lý ngoại lệ là một khối lệnh chương trình được thiết kế xử lý các ngoại lệ mà
chương trình phát sinh. Xử lý ngoại lệ được thực thi trong trong câu lệnh catch. Một cách lý
tưởng thì nếu một ngoại lệ được bắt và được xử lý, thì chương trình có thể sửa chữa được vấn
đề và tiếp tục thực hiện hoạt động. Thậm chí nếu chương trình không tiếp tục, bằng việc bắt
giữ ngoại lệ chúng ta có cơ hội để in ra những thông điệp có ý nghĩa và kết thúc chương trình
một cách rõ ràng.
Nếu đoạn chương trình của chúng ta thực hiện mà không quan tâm đến bất cứ ngoại lệ