1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng Lập trình giao diện: Chương 2 - Nguyễn Thị Mai Trang

25 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Bài giảng Lập trình giao diện: Chương 2 Ngôn ngữ lập trình C#, với mục tiêu giúp các bạn có thể phân biệt và so sánh được các đặc điểm của ngôn ngữ C# và ngôn ngữ lập trình đã học (C++); Thao tác thành thạo trong môi trường Visual Studio.NET để xây dựng được ứng dụng bằng ngôn ngữ C#; Sử dụng được cú pháp và ngôn ngữ C# trong lập trình; Vận dụng được kỹ thuật xử lý ngoại lệ để phát hiện và xử lý lỗi chương trình.

08/07/2020 LẬP TRÌNH GIAO DIỆN Nguyễn Thị Mai Trang Nguyễn Thị Mai Trang 1 Chương Ngôn ngữ lập trình C# 08/07/2020 Mục tiêu • Phân biệt so sánh đặc điểm ngôn ngữ C# ngơn ngữ lập trình học (C++) • Thao tác thành thạo môi trường Visual Studio.NET để xây dựng ứng dụng ngơn ngữ C# • Sử dụng cú pháp ngôn ngữ C# lập trình • Vận dụng kỹ thuật xử lý ngoại lệ để phát xử lý lỗi chương trình Nguyễn Thị Mai Trang 3 NỘI DUNG Giới thiệu ngơn ngữ lập trình C# Các đặc điểm ngôn ngữ Các bước xây dựng ứng dụng C# Từ khóa C# Các kiểu liệu Biến, Toán tử Cấu trúc lựa chọn Cấu trúc lặp 10 Xử lý ngoại lệ Nguyễn Thị Mai Trang 4 08/07/2020 2.1 Giới thiệu ngôn ngữ lập trình C# • Được Microsoft cơng bố năm 2000 • Là ngôn ngữ mạnh mẽ đơn giản dành cho nhà phát triển  tạo ứng dụng cách sử dụng Microsoft.NET Framework • Được phát triển dựa tảng từ C ++, – Loại bỏ bớt cú pháp khơng cịn phù hợp – Bổ sung nhiều tính Nguyễn Thị Mai Trang 5 Giới thiệu ngơn ngữ lập trình C# (tt) • Ngơn ngữ C#: – Có nguồn gốc từ C, C++  cú pháp gần giống C++, loại bỏ macro, template, đa kế thừa – Là ngôn ngữ hướng đối tượng hoàn toàn, hỗ trợ đặc trưng ngơn ngữ lập trình hướng đối tượng: • tính đóng gói (encapsulation) • tính đa hình (polymorphism) • tính kế thừa (inheritance) – Hỗ trợ mạnh mẽ chế xử lý ngoại lệ, thu hồi nhớ tự động, bảo mật mã nguồn… – Dùng để xây dựng nhiều loại ứng dụng web, dịch vụ web, xử lý văn bản, đồ họa, bảng tính, Nguyễn Thị Mai Trang 6 08/07/2020 2.2 Các đặc điểm ngơn ngữ C# • Đối với Lập trình trực quan: thao tác trực quan để tạo giao diện dựa vào đối tượng hộp hội thoại, button,… với nhiều thuộc tính định dạng • Đối với Lập trình kiện: – Cung cấp đối tượng cho phép xây dựng chương trình theo hướng kiện (Event-Driven Programming) – Các đối tượng thiết kế giao diện hỗ trợ hàm xử lý kiện • Đối với Lập trình hướng đối tượng: C# ngơn ngữ hướng đối tượng hồn tồn Nguyễn Thị Mai Trang 7 2.3 Các bước xây dựng ứng dụng C# • Nội dung: – Tạo project VS.Net, chọn ngôn ngữ C# – Cấu trúc chương trình C# – Thiết kế giao diện – Viết code – Biên dịch, thực thi Nguyễn Thị Mai Trang 8 08/07/2020 Các bước xây dựng ứng dụng C# (tt) • Tạo project ứng dụng Windows Form: Nguyễn Thị Mai Trang 9 Các bước xây dựng ứng dụng C# (tt) • Cấu trúc chương trình C# Nguyễn Thị Mai Trang 10 10 08/07/2020 Các bước xây dựng ứng dụng C# (tt) • Thiết kế giao diện: – Mỗi project tạo có Form – Drag đối tượng ToolBox kéo thả vào Form – Thay đổi thuộc tính đối tượng từ bảng Properties Nguyễn Thị Mai Trang 11 11 Các bước xây dựng ứng dụng C# (tt) • Viết code: – Chuyển sang phần code-behind (file.cs) cách sau: • Click chuột phải tên Form cửa sổ Solution Explorer, chọn View Code • Nhấp double chuột Form • Nhấp double chuột đối tượng Form Nguyễn Thị Mai Trang 12 12 08/07/2020 Các bước xây dựng ứng dụng C# (tt) Nguyễn Thị Mai Trang 13 13 Các bước xây dựng ứng dụng C# (tt) • Thêm thành phần vào project Nguyễn Thị Mai Trang 14 14 08/07/2020 Các bước xây dựng ứng dụng C# (tt) • Biên dịch, thực thi Hello.cs C# Compiler Hello.exe Hello.dll MSIL CLR Linux Thực thi Linux CLR Windows Thực thi Windows CLR MacOS Thực thi MacOS Nguyễn Thị Mai Trang 15 15 2.4 Từ khóa C# Nguyễn Thị Mai Trang 16 16 08/07/2020 Từ khóa C# (tt) • Các từ khóa đặc biệt: – namespace – using – static Nguyễn Thị Mai Trang 17 17 2.5 Các kiểu liệu C# • C# hỗ trợ hai kiểu liệu: – Kiểu liệu giá trị (value): gồm kiểu liệu xây dựng sẵn (Predefined types) kiểu số, ký tự, luận lý, kiểu liệu liệt kê, kiểu cấu trúc (struct)… – Kiểu liệu tham chiếu (reference): kiểu liệu người dùng định nghĩa: class, interface, delegate, array Nguyễn Thị Mai Trang 18 18 08/07/2020 Các kiểu liệu C# (tt) • Predefined types Nguyễn Thị Mai Trang 19 19 Các kiểu liệu C# (tt) • Predefined types Nguyễn Thị Mai Trang 20 20 10 08/07/2020 Các kiểu liệu C# (tt) • Các ký tự đặc biệt C# – Ký tự ‘\’ : đặt trước để hiển thị ký tự đặc biệt Cách sử dụng \\ \' \" Ý nghĩa Ký tự \ Ký tự ' Ký tự " Cách sử dụng \f \n \r \? \a \b Ký tự ? Tiếng beep Backspace \t \v Ý nghĩa Form feed Dòng Carriage return Tab ngang Tab dọc Nguyễn Thị Mai Trang 21 21 Các kiểu liệu C# (tt) • Các ký tự đặc biệt C# – Ký tự ‘\’ – Ký tự ‘@’: Nguyễn Thị Mai Trang 22 22 11 08/07/2020 Kiểu liệu liệt kê (Enumerations) • Sử dụng biến lấy giá trị giá trị cố định • Đặt tên chung cho tập giá trị nguyên (tương tự tập hằng), làm cho chương trình rõ ràng, dễ hiểu • Ví dụ, để biểu diễn bốn hướng bắc, nam, đông, tây, ta sử dụng bốn biến kiểu số nguyên như: Bac=1, Nam=2, Dong=3, Tay=4 • Các giá trị số không mang ý nghĩa liên quan đến hướng thường khó nhớ kiểu liệu enum Nguyễn Thị Mai Trang 23 23 Kiểu liệu liệt kê (tt) • Cú pháp: – enum { [= hằng], [= hằng], [= hằng], … [= hằng] –} • Sử dụng:: – ; = .; • Ví dụ: xem tài liệu học tập Lập trình giao diện Nguyễn Thị Mai Trang 24 24 12 08/07/2020 Kiểu liệu cấu trúc (struct) • Khai báo với từ khóa struct  tạo kiểu liệu lưu trữ nhiều giá trị • struct kiểu liệu giá trị, lưu trữ stack nhớ, dùng trường hợp lưu trữ liệu tương đối nhỏ • Cú pháp khai báo: – struct { } Nguyễn Thị Mai Trang 25 25 Kiểu liệu cấu trúc (tt) • struct có trường, thuộc tính, phương thức, phương thức khởi tạo • Một số đặc điểm struct: – Không thể khai báo phương thức khởi tạo không tham số cho cấu trúc – Các thuộc tính cấu trúc phải khởi tạo giá trị – Khi khai báo trường cấu trúc, khởi gán giá trị – Trường hợp gọi phương thức khởi tạo cấu trúc với từ khóa new, thuộc tính chưa khởi trị tự động gán trị null Nguyễn Thị Mai Trang 26 26 13 08/07/2020 Kiểu liệu cấu trúc (tt) • Ví dụ: cấu trúc Time (xem tài liệu học tập Lập trình giao diện) Nguyễn Thị Mai Trang 27 27 2.6 Biến, Hằng • Tương tự C++, phải khởi tạo trước sử dụng • Cú pháp khai báo biến: – [MucTruyCap] KieuDulieu TenBien [= Giatri] ; – MucTruyCap: từ khóa public, private, protected,… định mức truy cập biến, mặc định private int number; private int sum = 0; double radius = 5.0; protected char myChar = ‘A’; Nguyễn Thị Mai Trang 28 28 14 08/07/2020 Biến, Hằng (tt) • Tầm vực biến: – Biến khai báo bên phương thức có phạm vi phương thức đó, gọi biến cục bộ, khơng thể truy xuất phương thức – Biến khai báo bên thân lớp có phạm vi lớp – Trong phạm vi hoạt động (scope), khơng thể có hai biến tên Nguyễn Thị Mai Trang 29 29 Biến, Hằng (tt) • Hằng tương tự biến giá trị không thay đổi chương trình thực thi • Hằng phải khởi tạo khai báo khai báo lần chương trình khơng thay đổi giá trị • Cú pháp khai báo hằng: – = ; • Ví dụ: – const double PI = 3.14158; public const MAX = 100; Nguyễn Thị Mai Trang 30 30 15 08/07/2020 2.7 Toán tử C# • • • • Toán tử gán: = Toán tử số học: +, -, *, /, % (chia lấy phần dư) Toán tử tăng, giảm: ++, , +=, -=, *=, /=, %= Toán tử quan hệ: ==, !=, >, >=, = 60 ) Console.WriteLine("Đậu"); else Console.WriteLine("Rớt"); Nguyễn Thị Mai Trang 33 33 Cấu trúc lựa chọn (tt) • Sử dụng biểu thức điều kiện – Sử dụng toán tử ?, : thay cho if else trường hợp đơn giản – Cú pháp: dieukien ? giatri1 : giatri2; Console.WriteLine( diem >= ? “Đậu" : “Rớt" ); Nguyễn Thị Mai Trang 34 34 17 08/07/2020 Cấu trúc lựa chọn (tt) • if else lồng if (diem >= 90) Console.WriteLine (“A”); else if (diem >= 80) Console.WriteLine (“B”); else if (diem >= 70) Console.WriteLine (“C”); else if (diem >= 60) Console.WriteLine (“D”); else Console.WriteLine (“F”); if (diem >= 90) Console.WriteLine (“A”); else if (diem >= 80) Console.WriteLine (“B”); else if (diem >= 70) Console.WriteLine (“C”); else if (diem >= 60) Console.WriteLine (“D”); else Console.WriteLine (“F”); Nguyễn Thị Mai Trang 35 35 Cấu trúc lựa chọn (tt) • Lưu ý sử dụng if else lồng nhau: – Một else kết hợp với if gần – Nên sử dụng cặp ngoặc { } trường hợp sử dụng if else lồng – Trong khối lệnh if else, chứa từ hai câu lệnh, phải đặt cặp ngoặc { } Nguyễn Thị Mai Trang 36 36 18 08/07/2020 Cấu trúc lựa chọn (tt) • Cấu trúc switch switch (Bien_kiemtra) { case : //code thực Bien_kiemtra = giatri_1 break; case : //code thực Bien_kiemtra = giatri_2 break; case : //code thực Bien_kiemtra = giatri_n break; [default]: //code thực Bien_kiemtra khác giá trị break; } Nguyễn Thị Mai Trang 37 37 2.9 Cấu trúc lặp • Cấu trúc lặp for – Cú pháp: – for (bien_khoi_tao; dieukien ; buoc_lap) Khoi_lenh Nguyễn Thị Mai Trang 38 38 19 08/07/2020 Cấu trúc lặp (tt) • Cấu trúc lặp while: – Cú pháp: while (dieukien) { Khoi_lenh } – dieukien kiểm tra trước • true: thực lệnh Khoi_lenh • false: khỏi vịng lặp Nguyễn Thị Mai Trang 39 39 Cấu trúc lặp (tt) • Cấu trúc lặp while – Cú pháp: { Khoi_lenh }while (dieukien); • Thực lệnh Khoi_lenh • Kiểm tra dieukien – true: thức bước lặp – false: khỏi vịng lặp Nguyễn Thị Mai Trang 40 40 20 08/07/2020 Cấu trúc lặp (tt) • Cấu trúc lặp foreach: – Dùng để duyệt phần tử mảng, tập hợp – Khơng có biến đếm mà sử dụng biến để đại diện cho giá trị phần tử – Cú pháp: foreach (kieu_dulieu bien_daidien in ten_taphop) { Khoi_lenh } • • • • kieu_dulieu: kiểu liệu bien_daidien: biến đại diện cho phần tử mảng in: từ khóa ten_taphop: tên tập hợp / mảng Nguyễn Thị Mai Trang 41 41 Cấu trúc lặp (tt) • Lệnh break, continue, return – break: sử dụng hai trường hợp: • Trong cấu trúc switch: khỏi cấu trúc switch • Trong vịng lặp: khỏi vịng lặp trực tiếp chứa – continue: ngừng thực cơng việc cịn lại vịng lặp thời quay đầu vòng lặp để thực bước lặp – return: thoát khỏi hàm, trả quyền điều khiển phía triệu gọi hàm (caller) Nguyễn Thị Mai Trang 42 42 21 08/07/2020 2.10 Xử lý ngoại lệ • Ngoại lệ lỗi phát sinh khơng mong muốn q trình thực thi chương trình, cịn gọi lỗi • Ngoại lệ xảy code lời gọi hàm từ code • Có nhiều ngun nhân sinh ngoại lệ thiếu nhớ, thiếu tài nguyên, thao tác người sử dụng,… Ví dụ: – lỗi chia cho – lỗi sai định dạng – lỗi truy xuất tập tin không tồn –… Nguyễn Thị Mai Trang 43 43 Xử lý ngoại lệ (tt) • CLR hỗ trợ chế xử lý lỗi cách tự động • Khi có lỗi phát sinh: chương trình hiển thị thơng báo từ trình biên dịch u cầu đóng • gây khó chịu cho người sử dụng, khơng đảm bảo tính tin cậy chương trình phần mềm • Có thể ngăn chặn xử lý lỗi cách nắm bắt xử lý ngoại lệ • Thư viện NET framework cung cấp lớp, đối tượng xử lý ngoại lệ Nguyễn Thị Mai Trang 44 44 22 08/07/2020 Xử lý ngoại lệ (tt) • Xử lý ngoại lệ với try…catch…finally – Cú pháp: try{ // lệnh thực } catch ([Exception]){ // lệnh xử lý lỗi } finaly{ //các lệnh kết thúc xử lý } Nguyễn Thị Mai Trang 45 45 Xử lý ngoại lệ (tt) • Ví dụ: xem tài liệu học tập Lập trình giao diện Nguyễn Thị Mai Trang 46 46 23 08/07/2020 Xử lý ngoại lệ (tt) • Sử dụng lệnh throw: – Lệnh throw dùng để ném tín hiệu bất bình thường làm phát sinh ngoại lệ – Khi ngoại lệ phát sinh, việc thực thi CLR dừng tìm kiếm trình xử lý ngoại lệ – Nếu khơng tìm trình xử lý ngoại lệ chương trình chương trình kết thúc – Ví dụ: xem tài liệu học tập Lập trình giao diện Nguyễn Thị Mai Trang 47 47 Xử lý ngoại lệ (tt) • Sử dụng checked unchecked – Xử lý lỗi "tràn số" – Lệnh checked: kiểm tra làm phát sinh ngoại lệ OverflowException có lỗi tràn số – Lệnh unchecked: hủy bỏ kiểm tra, không làm phát sinh ngoại lệ OverflowException có lỗi tràn số – Ví dụ: xem tài liệu học tập Lập trình giao diện Nguyễn Thị Mai Trang 48 48 24 08/07/2020 Xử lý ngoại lệ (tt) • Phát biểu using: sử dụng code nhằm tạo đối tượng tự hủy cách an tồn Ví dụ: using (StreamReader reader = new StreamReader("info.txt")) { string row; while ((row = reader.ReadLine()) != null) Console.WriteLine(row); } Nguyễn Thị Mai Trang 49 49 Xử lý ngoại lệ (tt) • Các lớp ngoại lệ thường dùng Tên lớp ngoại lệ Ý nghĩa MethodAccessException Lỗi truy cập đến thành phần (phương ArrayTypeMismatchException ArithmeticException DivideByZeroException FormatException IndexOutOfRangeException InvalidCastException NullReferenceException OutOfMemoryException OverflowException thức,…) không phép truy cập Kiểu mảng không phù hợp Lỗi liên quan đến phép toán Lỗi chia cho Lỗi sai định dạng kiểu liệu Lỗi truy xuất ngồi số mảng Phép gán khơng hợp lệ Tham chiếu đến đối tượng null Tràn nhớ Tràn phép toán Nguyễn Thị Mai Trang 50 50 25 ... array Nguyễn Thị Mai Trang 18 18 08/07 /20 20 Các kiểu liệu C# (tt) • Predefined types Nguyễn Thị Mai Trang 19 19 Các kiểu liệu C# (tt) • Predefined types Nguyễn Thị Mai Trang 20 20 10 08/07 /20 20... động gán trị null Nguyễn Thị Mai Trang 26 26 13 08/07 /20 20 Kiểu liệu cấu trúc (tt) • Ví dụ: cấu trúc Time (xem tài liệu học tập Lập trình giao diện) Nguyễn Thị Mai Trang 27 27 2. 6 Biến, Hằng •... Carriage return Tab ngang Tab dọc Nguyễn Thị Mai Trang 21 21 Các kiểu liệu C# (tt) • Các ký tự đặc biệt C# – Ký tự ‘’ – Ký tự ‘@’: Nguyễn Thị Mai Trang 22 22 11 08/07 /20 20 Kiểu liệu liệt kê (Enumerations)

Ngày đăng: 23/02/2022, 10:30

Xem thêm: