Lập trình C sharp cơ bản cho người mới bắt đầu, tài liệu lập trình c sharp .................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Trang 1ĐÀO TẠO LẬP TRÌNH VIÊN QUỐC TẾ
CE GROUP (CORE EXTEND GROUP)
Trang 2NỘI DUNG KHÓA HỌC
Phần 1 Tổng quan C# - Buổi 1
Phần 2 Cú pháp ngôn ngữ C# - Buổi 1
Phần 3 Lập trình hướng đối tượng OOP với C# (Kế thừa, trừu tượng, đa hình…) - Buổi 1
Phần 4 Winform – Xử lý các điều khiển cơ bản và nâng cao, sử dụng các điều khiển UI Control
(devExpress, Ribbon) – Buổi 2,3,4
Phần 5 SQL cơ bản và nâng cao – Buổi 5,6,7
Phần 6 Winform – Lập trình Cơ sở dữ liệu – Buổi 8,9
Phần 7 Winform – Xử lý đa luồng (Multithread) – Buổi 10
Phần 8 Tạo báo cáo động với Crystal Report (Cơ bản và nâng cao) – Buổi 11,12
Phần 9 Khái niệm và cách sử dụng Delegate – Buổi 13
Phần 10 Các kiểu dữ liệu nâng cao Collection, Generic – Buổi 14
Phần 11 Mô hình kiến trúc N-Tier và bài toán thực tế - Buổi 15
Trang 3TỔNG QUAN
- Có kiến thức cơ bản về lập trình
(Đã học qua các môn như C/C++, Cấu trúc dữ liệu giải thuật)
- Có mong muốn trở thành lập trình viên
- Có nền tảng kiến thức vững chắc để tiếp cận các ngôn ngữ lập trình cấp cao (ASP.Net, MVC, Net Core…)
- Có khả năng chuyển đổi sang các ngôn ngữ khác (Java, Python…)
- Nâng cao tư duy logic cho các bài toán thực tế
Trang 41 TỔNG QUAN C#
C# là gì?
C# (hay C sharp) là một ngôn ngữ lập trình đơn giản C# được phát triển bởi đội ngũ kỹ sư của Microsoft vào năm 2000 C# là ngôn ngữ lập trình hiện đại, hướng đối tượng
C# được xây dựng trên nền tảng của hai ngôn ngữ là C++ và Java
Trang 51 TỔNG QUAN C#
2 • Cộng đồng trực tuyến cực kỳ đông đảo
3 • Điểm tựa vững chắc là Microsoft
4 • Tạo các phần mềm đa nền tảng
6 • Phát triển ứng dụng Android và iOS
Trang 7TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Các thành phần cơ bản của chương trình C#
Using Namespace
Class Hàm (Phương thức)
Comment
Trang 8TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
- Tạo chương trình C# đầu tiên:
Bước 1 Mở Visual Studio
Bước 2 Chọn File -> New -> Project
Bước 3 Chọn Window -> Console Applications
Bước 4 Tại Names nhập tên Project
-> Chọn OK
???
Trang 9TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Trang 10TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
- Using: Dùng để chỉ khai báo thư viện lập trình sẽ sử dụng trong chương trình
Cú pháp: using <Tên thư viện>;
- Namespace (không gian tên): là một cơ chế cho phép chúng ta phân nhóm các thực thể như class, object,
function thành những nhóm riêng biệt (Tránh xung đột khi lập trình)
Cú pháp: namespace <Tên namespace>
Ví dụ namespace: ???
- Class: Lớp là một kiểu dữ liệu Các thể hiện riêng của từng lớp được gọi là đối tượng
Hai thành phần chính của lớp là: Thuộc tính, Phương thức
Cú pháp:
Trang 11TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
- Hàm (function): Hàm trong C# được dùng để thực thi một khối lệnh nào đấy
Trong đó:
+ Tên hàm: là tên duy nhất được sử dụng để gọi hàm VD: getData(), AddValue()
+ Quyền truy cập: để xác định khả năng truy cập hàm trong ứng dụng (Public, Proteced, Private)
+ Kiểu trả về: kiểu dữ liệu của hàm trả về VD: int, Boolean, string, void
+ Tham số: Danh sách các tham số truyền vào khi gọi hàm
+ Thân hàm: khối lệnh thực thi khi hàm được gọi
Trang 12TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Kiểu ký tự char Chứa một ký tự Unicode
Kiểu chuỗi string Được sử dụng để lưu trữ những giá trị kiểu chữ cho biến
Kiểu logic bool Chứa 1 trong 2 giá trị logic là true hoặc false
Kiểu số thực
float Kiểu số thực dấu chấm động có giá trị dao động từ 3.4E – 38 đến 3.4E + 38, với 7 chữ số có nghĩa
double Kiểu số thực dấu chấm động có giá trị dao động từ 1.7E – 308 đến 1.7E + 308, với 15, 16 chữ số có nghĩa
decimal Có độ chính xác đến 28 con số và giá trị thập phân, được dùng trong tính toán tài chính
Kiểu dữ liệu trong C#
Trang 13TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Ví dụ: Hàm không có tham số và kiểu trả về
Kết quả:
Trang 14TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Ví dụ: Hàm có tham số nhưng không có kiểu trả về
Kết quả:
Trang 15TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Ví dụ: Hàm có tham số và có kiểu trả về
Kết quả:
Trang 16TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Cách thức gọi hàm với: Gọi bằng giá trị, gọi bằng tham chiếu và dùng tham số
1 Gọi bằng giá trị (Call by value)
Trang 17TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Cách thức gọi hàm với: Gọi bằng giá trị, gọi bằng tham chiếu và dùng tham số
2 Gọi bằng tham chiếu (Call by Reference): sử dụng từ khóa ref để truyền đối số dưới dạng tham chiếu, hay bên trong hàm thay đổi giá trị tham số truyền vào thì giá trị gốc cũng thay đổi theo
Trang 18TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
Cách thức gọi hàm với: Gọi bằng giá trị, gọi bằng tham chiếu và dùng tham số
3 Dùng tham số: sử dụng từ khóa out giống như gọi bằng tham chiếu
Cách thức này khác với gọi bằng tham chiếu là giá trị truyền vào không cần khởi tạo trước
Trang 19TỔNG QUAN C# - CẤU TRÚC CHƯƠNG TRÌNH C#
- Comment: chú thích (giải thích) mã nguồn
Trang 202 CÚ PHÁP NGÔN NGỮ C#
2.1 Quy tắc đặt tên trong C#
2.2 Các từ khóa trong C#
2.3 Nhập xuất trong C#
Trang 212.1 QUY TẮC ĐẶT TÊN TRONG C#
Quy tắc chung:
- Tên có ý nghĩa và thực hiện đúng mục đích
- Độ dài tên: từ 5-20 ký tự
- Tên không được trùng với từ khóa của C#
- Tên không được bắt đầu bằng số Ví dụ: 12Name
- Tên phải bắt đầu bằng một chữ cái hoặc một số ký tự như $, _,
- Tên không được chứa khoảng trắng
- Tên chưa nhiều ký tự nên phân cách nhau bằng dấu gạch dưới _
- C# phân biệt Chữ hoa và Chữ thường
Trang 222.1 QUY TẮC ĐẶT TÊN TRONG C#
- Quy tắc đặt tên Biến (đại lượng có giá trị thay đổi)
+ Chữ đầu tên biến viết Thường, các từ tiếp theo viết Hoa chữ cái đầu
Ví dụ: tenKhachHang, maKhachHang…
+ Tên biến đặt có ý nghĩa và thể hiện được mục đích
- Quy tắc đặt tên Hằng số (đại lượng có giá trị không đổi)
+ Hằng số đặt theo quy tắc chung
+ Hằng số có 2 từ trở lên phân cách nhau bằng dấu _
Ví dụ: SO_PI
- Quy tắc đặt tên Phương thức
+ Sử dụng động từ để đặt tên phương thức
Ví dụ: GetData(), Move()…
- Quy tắc đặt tên Thuộc tính
+ Chữ cái đầu tiên của mỗi từ được viết hoa
+ Tên thuộc tính nên sử dụng danh từ, tính từ hoặc cụm danh từ
Ví dụ: AddressStudent, PhoneNumber
Trang 232.2 CÁC TỪ KHÓA TRONG C#
Các từ khóa trong C#
modifier) int
null object operator out out (generic modifier) override params
Trang 242.2 NHẬP XUẤT TRONG C#
5 lệnh nhập xuất được sử dụng trong C#
- Console.Write(): Lệnh này dùng để xuất dữ liệu, giá trị ra màn hình, các giá trị nằm trên 1 hang
- Console.WriteLine() : Tương tự Console.Write(), tuy nhiên con trỏ sẽ xuống dòng mỗi khi xuất xong dữ liệu
- Console.Read() : Đọc ký tự từ bàn phím sau đó trả về kiểu số nguyên của ký tự đó dựa trên bảng
mã ASCII
- Console.ReadLine(): Đọc ký tự từ bàn phím và giá trị đọc được luôn là một chuỗi ký tự
- Console.ReadKey() : Dừng lại để xem màn hình kết quả
Trang 252.2 NHẬP XUẤT TRONG C# - VÍ DỤ
Ví dụ nhập xuất dữ liệu trong C#
Trang 263 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI C#
- - Khái niệm:
- Lập trình hướng đối tượng là phương pháp lập trình lấy đối tượng làm nền tảng để xây dựng
chương trình
- - Một số khái niệm trong OOP
- + Đối tượng: được hiểu như là 1 thực thể (người, đồ vật, 1 bảng dữ liệu…)
- + Đối tượng bao gồm 2 thông tin: Phương thức và Thuộc tính
- Thuộc tính: là những thông tin, đặc điểm của đối tượng Ví dụ: người sẽ có họ tên, ngày sinh…
- Phương thức: là những thao tác, hành động mà đối tượng đó có thể thực hiện Ví dụ: người có thể ăn uống,
nói, đi lại…
+ Lớp: các đối tượng có thuộc tính giống nhau được gom thành 1 lớp đối tượng
Trang 273 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI C#
1 • Tính Đóng gói
2 • Tính Kế thừa
3 • Tính Đa hình
4 • Tính Trừu tượng Đặc điểm của OOP
Trang 283 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI C# - CLASS
- Khái niệm Class
+ Class trong C# chính là cách thể hiện khái niệm về lớp trong lập trình hướng đối tượng
- Khởi tạo Class
+ Khởi tạo 1 đối tượng thuộc lớp thông qua toán tử new
+ Để gọi các thuộc tính của lớp: <tên đối tượng>.<tên thuộc tính>
+ Để gọi các phương thức của lớp: <tên đối tượng>.<tên phương thức>(<danh sách tham số nếu có>)
Trang 293 LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI C# - CLASS (TIẾP)
Phương thức khởi tạo Class (Constructor)
- Đặc điểm:
+ Có tên trùng với tên lớp
+ Không có kiểu dữ liệu trả về
+ Được tự động gọi khi 1 đối tượng được khởi tạo
+ Nếu không khai báo bất kỳ phương thức khởi tạo
nào thì hệ thống sẽ tự tạo ra phương thức khởi tạo
mặc định không đối số và không có nội dung
+ Có thể có nhiều constructor bên trong 1 lớp
Trang 303 OOP C# - TÍNH ĐÓNG GÓI
Phạm vi truy cập
private Truy cập bị hạn chế trong phạm vi của định nghĩa Class Đây là loại phạm vi truy cập mặc định
nếu không được chỉ định
protected Truy cập bị giới hạn trong phạm vi định nghĩa của Class và bất kỳ các class con thừa kế từ class
này
public Không có bất kỳ giới hạn nào khi truy cập
internal Truy cập bị giới hạn trong phạm vi Assembly của dự án hiện tại
protected internal Truy cập bị giới hạn trong phạm vi Assembly hiện tại và trong class định nghĩa hoặc các class con,
nó là sự kết hợp của protected và internal
Trang 313 OOP C# - TÍNH ĐÓNG GÓI (TIẾP)
Tính đóng gói trong OOP thể hiện như sau:
- Các dữ liệu và phương thức liên quan được đóng gói thành từng lớp (Class)
- Đóng gói che dấu thông tin (Phạm vi truy cập)
+ Các thuộc tính thường phạm vi là private
+ Các phương thức thường có phạm vi là public
Phương thức truy vấn và phương thức cập nhật
- Phương thức truy vấn: là phương thức giúp người dùng có thể xem được dữ liệu của 1 thuộc tính nào đó
- Phương thức cập nhật: là phương thức giúp người dùng có thể thay đổi giá trị cho 1 thuộc tính nào đó.
Trang 323 OOP C# - TÍNH KẾ THỪA
Khái niệm kế thừa:
- Kế thừa là cách 1 lớp thừa hưởng lại những thuộc tính, phương thức từ 1 lớp khác
- Ví dụ: Giả sử ta có lớp Car (ô tô) kế thừa từ lớp Vehicle (phương tiện) các đặc điểm như chiều dài, chiều rộng, màu sắc, số ghế ngồi
Ưu điểm của kế thừa:
- Cho phép xây dựng 1 lớp mới (lớp con) từ lớp đã có (lớp cha/lớp cơ sở)
- Cho phép chia sẻ và tái sử dụng thông tin
Cú pháp:
class <tên lớp con> : <tên lớp cha> { }
Trang 333 OOP C# - TÍNH KẾ THỪA
Ví dụ: Kế thừa
Trang 343 OOP C# - TÍNH ĐA HÌNH
- Khái niệm
Tính đa hình là hiện tượng các đối tượng thuộc các lớp khác nhau hiểu 1 thông điệp theo các cách khác nhau
- Lưu ý
+ Để thể hiện tính đa hình các lớp phải kế thừa từ cùng 1 lớp cha
+ Phương thức đa hình phải được ghi đè (override) ở các lớp con và khai báo virtual ở lớp cha
Trang 353 OOP C# - TÍNH TRỪU TƯỢNG
- Khái niệm
+ Lớp trừu tượng: là lớp chứa phương thức thuần ảo
+ Phương thức thuần ảo: là phương thức ảo và không có định nghĩa bên trong
+ Từ khóa để khai báo lớp trừu tượng là: abstract
Trang 363 OOP C# - INTERFACE
- Khái niệm
Interface là 1 tập các thành phần chỉ có khai báo mà không có phần định nghĩa
- Đặc điểm
+ Chỉ chứa khai báo không chứa phần định nghĩa
+ Việc ghi đè 1 thành phần trong interface cũng không cần từ khoá override
+ Các thành phần trong interface có phạm vi là public
+ Interface không chứa các thuộc tính
+ Các lớp có thể thực thi nhiều interface cùng lúc
+ Một interface có thể kế thừa nhiều interface khác nhưng không thể kế thừa bất kỳ lớp nào
- Cú pháp:
interface <tên interface>
{
//Các thành phần bên trong
Trang 373 OOP C# - INTERFACE
Ví dụ:
Trang 38BÀI TẬP THỰC HÀNH PHẦN TỔNG QUAN C#
Viết ứng dụng Console App thực hiện các yêu cầu sau:
Bài 3.1 Viết chương trình Nhập vào thông tin Họ tên, năm sinh sau đó hiển thị kết quả Thông tin họtên và tuổi
Bài 3.2 Viết chương trình Xếp loại học lực sinh viên: nhập điểm của sinh viên sau đó hiển thị kết quảtương ứng Điểm < 5: loại yếu, 5 <= điểm < 6.5 loại TB, 6.5 <= điểm < 7 loại TB Khá, 7<= điểm < 8 loạiKhá, 8<= điểm < 9 loại Giỏi, 9 <= điểm <= 10 loại Xuất sắc
Bài 3.3. Viết chương trình giải phương trình bậc 1: 𝑎𝑥 + 𝑏 = 0
Bài 3.4. Viết chương trình giải phương trình bậc 2: 𝑎𝑥2 + 𝑏𝑥 + 𝑐 = 0
Bài 3.5. Viết chương trình để khai báo một mảng, sau đó lưu giữ các phần tử vào mảng rồi in các phần
tử mảng này trên màn hình
Bài 3.6 Viết chương trình để nhập một mảng, sau đó tìm phần tử lớn nhất và phần tử nhỏ nhất và in
Trang 39BÀI TẬP THỰC HÀNH PHẦN TỔNG QUAN C#
Bài 3.7 Viết chương trình để nhập một mảng, sau đó tìm phần tử lớn thứ hai rồi in kết quả trên màn hình
Bài 3.8 Viết chương trình để cộng hai ma trận và sau đó in ma trận kết quả trên màn hình
Bài 3.9 Viết chương trình tìm ký tự xuất hiện nhiều nhất trong chuỗi
Bài 3.10 Viết chương trình đếm số lần xuất hiện của chuỗi con
Bài 3.11 Viết chương trình kiểm tra username, password Thoát chương trình khi nhập sai thông tin quá 3 lần.
Bài 3.12 Viết chương trình sắp xếp dãy số theo giải thuật sắp xếp nổi bọt
Bài 3.13 Viết chương trình sắp xếp dãy số theo giải thuật sắp xếp chèn
Trang 404 WINDOW FORM XỬ LÝ CÁC ĐIỀU KHIỂN CƠ BẢN
Window Form là một công nghệ của Microsoft, cho phép lập trình các ứng dụng Windows
Ví dụ: Word, Excel, Calculator…
- Đa phần các lập trình viên đều học qua Window Form
- Window form dễ học và cũng dễ dạy
- Giao diện kéo thả dễ dàng sử dụng, tiếp cận cho người bắt đầu
- Viết code dễ dàng và trực quan
- Giải quyết nhanh chóng mạnh mẽ đối với các bài toán nhỏ
- Tạo nền tảng cho việc chuyển đổi sang các nền tảng khác (WPF, ASP.Net, MVC…)
Trang 414 WINDOW FORM XỬ LÝ CÁC ĐIỀU KHIỂN CƠ BẢN
Một số điều khiển cơ bản và cách thức sử dụng
STT Tên điều khiển Mô tả Chữ viết tắt+Tên đối tượngCách thức Đặt tên
1 Form Cửa sổ của chương trình chứa các đối tượng khác frm + Tên đối tượng
2 Label Đối tượng dùng để hiển thị văn bản và hình ảnh lbl + Tên đối tượng
3 Textbox Dùng để hiển thị và nhập dữ liệu từ bàn phím txt + Tên đối tượng
4 Button Nút ấn cho phép khi click vào thì thực hiện 1 chức năng btn + Tên đối tượng
5 Checkbox Cho phép chọn hoặc không chọn chk + Tên đối tượng
6 Listbox Đối tượng cho phép xem và chọn dữ liệu giữa các dòng lst + Tên đối tượng
7 Combobox Cho phép chọn dữ liệu giữa các dòng cbo + Tên đối tượng
8 Groupbox Đối tượng chứa các đối tượng khác grb + Tên đối tượng
Trang 424 WINDOW FORM XỬ LÝ CÁC ĐIỀU KHIỂN CƠ BẢN
Các thuộc tính và sự kiện phổ biến
Kích chuột phải vào đối tượng chọn Properties để xem các thuộc tính
StartPosition: vị trí bắt đầu khi chạy form WindowState: trạng thái ban đầu của form
2 Label
ForeColor : màu chữ của nhãn Anchor: tọa độ co dãn tương đối Text: giá trị của nhãn
Font: cho phép lựa chọn kiểu chữ, kích thước,…
TabIndex: thứ tự focus trên form
4 Button Font: cho phép lựa chọn kiểu chữ, kích thước,… OnClick: thực hiện khi ấn vào button
5 Checkbox Font: cho phép lựa chọn kiểu chữ, kích thước,… CheckedChanged: thực hiện khi thay đổi lựa chọn
6 Listbox Font: cho phép lựa chọn kiểu chữ, kích thước,… TextChanged: thực hiện thay đổi nội dung nhập
7 Combobox Font: cho phép lựa chọn kiểu chữ, kích thước,… SelectedIndexChanged: thực hiện khi thay đổi lựa chọn
Trang 434 WINDOW FORM XỬ LÝ CÁC ĐIỀU KHIỂN CƠ BẢN
Xây dựng 1 form như hình bên dưới, theo các yêu cầu sau:
- Nhập thông tin Họ tên vào Textbox
- Tạo DatetimePicker cho phép chọn thông tin ngày sinh
- Tạo combobox cho phép chọn trình độ học vấn
- Tạo Radio Button cho phép chọn giới tính Nam, Nữ
- Tạo CheckBox cho phép chọ Thông tin Đăng ký học hoặc không
- Tạo Button khi ấn vào hiển thị ra Message Box các thông tin lựa chọn tương ứng