• Sau khi học hương này, sinh viên phải biết, hiểu và sử dụng được các nội dung – Công cụ và ngôn ngữ lập trình Visual Studio C#.NET – Cơ bản về ngôn ngữ C#.NET – Viết code bằng ngôn ngữ
Trang 2• Sau khi học hương này, sinh viên phải
biết, hiểu và sử dụng được các nội dung
– Công cụ và ngôn ngữ lập trình Visual Studio C#.NET
– Cơ bản về ngôn ngữ C#.NET – Viết code bằng ngôn ngữ C#.NET
Trang 3• Các đặc điểm mới của C#
• Các đặc điểm của ngôn ngữ về:
– Lập trình trực quan – Lập trình sự kiện – Lập trình hướng đối tượng
• Các bước xây dựng một ứng dụng bằng C#
• Các hình thức trình bày một giải thuật
Trang 51 Các đặc điểm mới của C#
• C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn
– Đơn giản – Hiện đại – Hướng đối tượng – Mạnh mẽ và mềm dẻo – Ít từ khóa
– Hướng module – Phổ biến
Trang 6Các đặc điểm mới của C# (tt)
• C# là ngôn ngữ đơn giản
– Loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class)
– Ngôn ngữ C# dựa trên nền tảng C và C++, nhưng được cải tiến để làm cho ngôn ngữ đơn giản hơn.
Trang 7Các đặc điểm mới của C# (tt)
• C# là ngôn ngữ hiện đại
– Ngôn ngữ C# chứa các đặc tính mới như:
Trang 10Các đặc điểm mới của C# (tt)
• C# là ngôn ngữ hướng module:
– Mã nguồn C# được viết trong các lớp, bao gồm các phương thức, thuộc tính
– Những lớp và những phương thức có thể được sử dụng lại trong ứng dụng hay các chương trình khác
• C# là một ngôn ngữ phổ biến: do những
đặc tính như: đơn giản, hướng đối tượng,
Trang 112 Các đặc điểm của ngôn ngữ C#
• Đối với lập trình trực quan:
– Cung cấp những đối tượng cho phép xây dựng chương trình theo hướng sự kiện (Event-Driven Programming)
– Người sử dụng có thể thao tác trực quan để tạo ra giao diện dựa vào các đối tượng như hộp hội thoại, button,… có các thuộc tính định dạng phong phú
Trang 12Các đặc điểm của ngôn ngữ C# (tt)
• Đối với Lập trình sự kiện: Các đối tượng
thiết kế giao diện đều được hỗ trợ các hàm
xử lý sự kiện (Form, WebForm, Menu,
Button, danh sách,…)
• Đối với Lập trình hướng đối tượng: cho
phép xây dựng các lớp (class) với các
phương thức và thuộc tính một cách dễ
Trang 14Tạo project trong VS.NET
• File, New Project hoặc Create Project
Trang 16• Cửa sổ Solution Explorer:
– Hiển thị phân cấp Project
• Project References
• Forms, Classes, Modules
• Forder với các items
– Các chế độ trong Project
• Drag và Drop
• Context menus
Trang 17thuộc tính của đối tượng dễ dàng
– Tab Even: cho phép khai báo các hàm xử
lý sự kiện trên form và controls
Trang 19• Cửa sổ Server Explorer:
– Quản lý các kết nối tới cơ
sở dữ liệu – Hiển thị và quản lý các item của Server trong VS.Net IDE như Event Logs, Message Queues … – Cho phép sử dụng kỹ
thuật kéo thả như các trường trong DB vào ứng dụng
Trang 21Các kiểu file trong project
• Solution Files (.sln, suo)
• Project Files (.csproj, vbproj)
• Local Project Items
– Classes, forms, modules, etc (.cs, vb)
• Web Project Items
– XML Web services (.asmx) – Web forms (.aspx)
– Global application classes (.asax)
Trang 23• Debug (chạy từng bước):
– Tạo break point: F9 – Chạy từng bước: F10
Trang 24Thiết kế giao diện
• Mỗi project mới được tạo có một Form duy nhất
• Để thiết kế các thành phần trên giao diện, click chọn một đối tượng trên thanh
ToolBox kéo thả vào Form
Trang 25Thiết kế giao diện (tt)
• Mỗi đối tượng (Control) đều có một số các thuộc tính định dạng trong cửa sổ
Properties Người sử dụng có thể chọn các thuộc tính theo yêu cầu thiết kế
Trang 29Thiết lập các thuộc tính cho Project
• Thiết lập các thuộc tính thông thường
– Định nghĩa tên Assembly – Namespace gốc
– Đầu ra Project – Đối tượng chạy đầu tiên – Import các mức namespaces
• Thiết lập các thuộc tính cấu hình
– Thiết lập Debug – Các tùy chọn Build
Trang 31Thiết lập các tham chiếu Project
• Nhiều Project tham chiếu đến các ứng dụng khác hoặc code của các thư viện
Dùng hộp thoại Add Reference
Trang 32– MSIL: tập tin exe hoặc dll
• MSIL được CLR thông dịch qua mã máy
– Dùng kỹ thuật JIT (just-in-time) để tăng tốc độ
Hello.cs
CLR trên Linux
Th ự c thi trên Linux
Trang 36• Sử dụng ngôn ngữ thường ngày để liệt kê các
bước của thuật toán
• Phương pháp biểu diễn này không yêu cầu
người viết thuật toán cũng như người đọc thuật toán phải nắm các quy tắc
• Cách biểu diễn này thường dài dòng, không thể hiện rõ cấu trúc của thuật toán, đôi lúc gây hiểu lầm hoặc khó hiểu cho người đọc
• Gần như không có một quy tắc cố định nào trong
Trang 37– Thường được dùng trong những thuật toán có tính rắc rối, khó theo dõi được quá trình xử lý
• Sử dụng các biểu tượng như hình chữ
Trang 38• Thao tác xử lý (process): sử dụng biểu tượng hình
một thao tác nhập/xuất.
• Thao tác chọn lựa (decision) sử dụng biểu tượng
để thực hiện dựa vào một biểu thức điều kiện.
• Ðiểm cuối (terminator) : sử dụng biểu tượng hình
oval
– Oval chứa từ “Begin” hoặc “Start”: là biểu tượng
Trang 39• Ðiểm nối (connector): sử dụng hình tròn
nhỏ để nối các phần khác nhau của mộtlưu đồ lại với nhau Bên trong điểm nối, tađặt một ký hiệu để biết sự liên hệ giữa cácđiểm nối
Trang 40• Ðiểm nối sang trang (off-page
connector): Tương tự như điểm nối,
nhưng điểm nối sang trang được dùng khi lưu đồ quá lớn, phải vẽ trên nhiều trang Bên trong điểm nối sang trang ta cũng đặt một ký hiệu để biết được sự liên hệ giữa điểm nối của các trang
Trang 48• break: lệnh thoát khỏi vòng lặp và tiếp tục
thực hiện các lệnh tiếp ngay sau vòng lặp
• continue ngừng thực hiện các công việc
còn lại của vòng lặp hiện thời và quay về đầu vòng lặp để thực hiện bước lặp tiếp theo
Trang 49– Lưu ý: phân biệt = và ==
• Toán tử logic: && (and), || (or), ! (not)
Trang 52Các ký hiệu chuỗi đặc biệt trong C#
• Ký hiệu \: đặt trước các ký tự đặc biệt
• Ký hiệu @:
Trang 53• Các lớp ngoại lệ thường dùng
Trang 55• Có thể ngăn chặn hoặc xử lý lỗi bằng cách nắm bắt các ngoại lệ (exception)
Trang 57ngôn ngữ C# làm phát sinh một ngoại lệ
• Khi phát sinh ngoại lệ, việc thực thi trong khi CLR sẽ được dừng và tìm kiếm một trình xử lý ngoại lệ, nếu tìm được một
trình xử lý ngoại lệ nào thì chương trình sẽ kết thúc
Trang 59• Khối try{ }: chứa các câu lệnh dễ sinh lỗi
• Khối catch { }: chứa các lệnh xử lý lỗi
(thường sử dụng các đối tượng Exception
• Khối finally { }: chứa các câu lệnh cần
được thực hiện trong cả hai trường hợp có hay không có lỗi phát sinh (hủy đối tượng, đóng file, đóng kết nối,…)
• Khi có lỗi phát sinh, các lệnh tiếp theo
trong khối try không được thực hiện mà
chuyển sang các lệnh xử lý trong khối
catch