Bai 2 - Khai Niem Co Ban C#
-
Upload
napoleonit76 -
Category
Documents
-
view
880 -
download
1
Transcript of Bai 2 - Khai Niem Co Ban C#
![Page 1: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/1.jpg)
Khái niệm cơ bản C#Khái niệm cơ bản C#
Trần Anh Tuấn ATrần Anh Tuấn A
![Page 2: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/2.jpg)
Nội dung Nội dung
Giới thiệu C#Giới thiệu C# Chủ đề nâng cao trong C#Chủ đề nâng cao trong C#
Những cơ sở ngôn ngữ C#Những cơ sở ngôn ngữ C# Lớp và đối tượngLớp và đối tượng Thừa kế và đa hìnhThừa kế và đa hình Cấu trúcCấu trúc Giao diệnGiao diện Array , Indexer , và CollectionArray , Indexer , và Collection ChuỗiChuỗi Xử lý lỗi & exception (biệt lệ)Xử lý lỗi & exception (biệt lệ) Delegate và EventDelegate và Event
![Page 3: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/3.jpg)
Giới thiệu C#Giới thiệu C#
Được phát triển bởi đội ngũ kỹ sư của Được phát triển bởi đội ngũ kỹ sư của Microsoft. Dẫn đầu là : Anders Hejlsberg và Microsoft. Dẫn đầu là : Anders Hejlsberg và Scott WiltamuthScott Wiltamuth
C# là một ngôn ngữ :C# là một ngôn ngữ : Đơn giảnĐơn giản Hiện đạiHiện đại Hướng đối tượngHướng đối tượng Mạnh mẽ & Mềm dẻoMạnh mẽ & Mềm dẻo Ít từ khoáÍt từ khoá
![Page 4: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/4.jpg)
Giới thiệu C#Giới thiệu C#
C# là một ngôn ngữ đơn giản : C# là một ngôn ngữ đơn giản : Loại bỏ những phức tạp có trong Java hay C++ như Loại bỏ những phức tạp có trong Java hay C++ như
macro , template , đa kế thừa , virtual base classmacro , template , đa kế thừa , virtual base class Giống về diện mạo cú pháp C và C++ nhưng được Giống về diện mạo cú pháp C và C++ nhưng được
cải tiến đơn giản hơn (Ví dụ : “:: , . , cải tiến đơn giản hơn (Ví dụ : “:: , . , ” chỉ còn “.”” chỉ còn “.” C# là một ngôn ngữ hiện đại :C# là một ngôn ngữ hiện đại :
Có đầy đủ các tính năng : Xử lý ngoại lệ , thu gom Có đầy đủ các tính năng : Xử lý ngoại lệ , thu gom bộ nhớ tự động , kiểu dữ liệu an toàn, bảo mật mã bộ nhớ tự động , kiểu dữ liệu an toàn, bảo mật mã nguồn…nguồn…
![Page 5: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/5.jpg)
Giới thiệu C#Giới thiệu C#
C# là ngôn ngữ hướng đối tượng :C# là ngôn ngữ hướng đối tượng : Đóng gói (encapsulation)Đóng gói (encapsulation) Kế thừa (inheritance)Kế thừa (inheritance) Đa hình (polymorphism)Đa hình (polymorphism)
C# là một ngôn ngữ mạnh mẽ và mềm dẻo :C# là một ngôn ngữ mạnh mẽ và mềm dẻo : Tuỳ thuộc vào bản thân người dùng. Không có giới Tuỳ thuộc vào bản thân người dùng. Không có giới
hạn ở bản chất ngôn ngữ.hạn ở bản chất ngôn ngữ. Tạo các ứng dụng đồ hoạ, bàn tính, xử lý văn bản, Tạo các ứng dụng đồ hoạ, bàn tính, xử lý văn bản,
trình biên dịch cho các ngôn ngữ khác v.v…trình biên dịch cho các ngôn ngữ khác v.v…
![Page 6: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/6.jpg)
Giới thiệu C#Giới thiệu C#
C# có ít từ khoá :C# có ít từ khoá :
![Page 7: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/7.jpg)
Những cơ sở ngôn ngữ C#Những cơ sở ngôn ngữ C#
Các ghi chú : // (1 dòng) , /* (nhiều dòng) */Các ghi chú : // (1 dòng) , /* (nhiều dòng) */ #region :#region :
Từ khoá using : giúp sử dụng lớp có sẵn của không gian Từ khoá using : giúp sử dụng lớp có sẵn của không gian tên nào đó tiện lợi hơntên nào đó tiện lợi hơn VD : using System.IO; VD : using System.IO; Từ đó sử dụng được các lớp làm Từ đó sử dụng được các lớp làm
việc với luồng dữ liệu , tập tin , thư mục ổ đĩa v.v…việc với luồng dữ liệu , tập tin , thư mục ổ đĩa v.v… Ứng dụng dạng console:Ứng dụng dạng console:
Nhập : string sInput ;Nhập : string sInput ; sInput = System.Console.ReadLine();sInput = System.Console.ReadLine();
(chuyển kiểu : System.Convert.To????(sInput) )(chuyển kiểu : System.Convert.To????(sInput) ) Xuất :Xuất :
System.Console.WriteLine(“KQ = {0}”, sInput);System.Console.WriteLine(“KQ = {0}”, sInput);
![Page 8: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/8.jpg)
Những cơ sở ngôn ngữ C#Những cơ sở ngôn ngữ C#
Phân biệt chữ hoa chữ thườngPhân biệt chữ hoa chữ thường Có các kiểu :Có các kiểu :
Dựng sẵn : byte , char , sbyte , int , float , double…Dựng sẵn : byte , char , sbyte , int , float , double… Hằng : const int PI = 3.1416;Hằng : const int PI = 3.1416; Liệt kê : enum Ngay {Hai,Ba,Tu,Nam,Sau,Bay,CN};Liệt kê : enum Ngay {Hai,Ba,Tu,Nam,Sau,Bay,CN};
Câu lệnh : if else , switch , for , while , gotoCâu lệnh : if else , switch , for , while , goto foreach : vòng lặp để duyệt tất cả các phần tử của mảng , tập foreach : vòng lặp để duyệt tất cả các phần tử của mảng , tập
hợphợpVD : int[] intarray; intarray = new int[5];VD : int[] intarray; intarray = new int[5];
foreach(int i in intarray) foreach(int i in intarray)
Console.WriteLine(i.ToString());Console.WriteLine(i.ToString());
![Page 9: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/9.jpg)
Những cơ sở ngôn ngữ C#Những cơ sở ngôn ngữ C#
Tạo vùng tênTạo vùng tên
(namespace)(namespace)
![Page 10: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/10.jpg)
Lớp và đối tượngLớp và đối tượng
Khai báo , tạo dựng và sử dụng lớp Khai báo , tạo dựng và sử dụng lớp
![Page 11: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/11.jpg)
Lớp và đối tượngLớp và đối tượng
Phương thức thiết lập (Constructor)Phương thức thiết lập (Constructor) Phương thức thiết lập sao chépPhương thức thiết lập sao chép Phương thức huỷPhương thức huỷ Sử dụng using Sử dụng using
( hàm huỷ tự đông ( hàm huỷ tự đông
gọi trong thời gian gọi trong thời gian
sớm nhất)sớm nhất)
![Page 12: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/12.jpg)
Lớp và đối tượngLớp và đối tượng
Tham chiếuTham chiếu Trong lớp TimeTrong lớp Time
Sử dụngSử dụng
![Page 13: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/13.jpg)
Lớp và đối tượngLớp và đối tượng
Đóng gói dữ liệu với PropertyĐóng gói dữ liệu với Property Lớp người có chuỗi m_sHotenLớp người có chuỗi m_sHoten Cài đặt Property HoTenCài đặt Property HoTen
Sử dụng PropertySử dụng PropertyNguoi A = new Nguoi();Nguoi A = new Nguoi();
A.HoTen = “Tran Anh Tuan”;A.HoTen = “Tran Anh Tuan”;
string tentoi = A.HoTen;string tentoi = A.HoTen;
![Page 14: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/14.jpg)
Thừa Kế & Đa HìnhThừa Kế & Đa Hình
Thừa kế : “:” Đa Hình : “virtual”Thừa kế : “:” Đa Hình : “virtual” Boxing & UnBoxingBoxing & UnBoxing
Boxing : chuyển đổi kiểu giá trị thành kiểu ObjectBoxing : chuyển đổi kiểu giá trị thành kiểu Object UnBoxing : Trả kết quả một đối tượng về giá trịUnBoxing : Trả kết quả một đối tượng về giá trị
![Page 15: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/15.jpg)
Cấu TrúcCấu Trúc
Cách dùng :
Location loc
= new Location(200,300);
Console.WriteLine(“KQ = {0}”, loc );
![Page 16: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/16.jpg)
Giao diệnGiao diện
Tạo một giao diện Tạo một giao diện
Mở rông giao diện & Kết hợp giao diệnMở rông giao diện & Kết hợp giao diện
![Page 17: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/17.jpg)
Giao diệnGiao diện
Cách sử dụng :Cách sử dụng :
Toán tử is : kiểm tra xem đối tượng có được Toán tử is : kiểm tra xem đối tượng có được hỗ trợ giao diện hay không (VD doc is hỗ trợ giao diện hay không (VD doc is IStorable)IStorable)
Toán tử as : Kiểm tra và gán Toán tử as : Kiểm tra và gán
![Page 18: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/18.jpg)
Array , Indexer , và CollectionArray , Indexer , và Collection
Array : Array :
Sử dụng lớp System.Array Sử dụng lớp System.Array (sẽ được hỗ trợ rất (sẽ được hỗ trợ rất nhiều các tính năng khác như :copy , sort , inverse…)nhiều các tính năng khác như :copy , sort , inverse…)
![Page 19: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/19.jpg)
Indexer : Indexer : tương tự như Property nhưng là lấy theo index tương tự như Property nhưng là lấy theo index
Cách dùng :
![Page 20: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/20.jpg)
Array , Indexer , và CollectionArray , Indexer , và Collection
.Net Framework cung cấp một số giao diện .Net Framework cung cấp một số giao diện chuẩn sau :chuẩn sau :
![Page 21: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/21.jpg)
ChuỗiChuỗi
Khai báo :Khai báo :
ToString() : chuyển mọi kiểu về string (Object)ToString() : chuyển mọi kiểu về string (Object) Ghép chuỗi : “+” (VD : string s = b + “,” +c;)Ghép chuỗi : “+” (VD : string s = b + “,” +c;) Lấy ký tự thứ i: s[i]; Lấy ký tự thứ i: s[i]; Lấy chiều dài : s.lengthLấy chiều dài : s.length Chuỗi con : s.Substring(begin,end);Chuỗi con : s.Substring(begin,end); Thay thế : s.Replace( chuoi1 , chuoi2 )Thay thế : s.Replace( chuoi1 , chuoi2 )
![Page 22: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/22.jpg)
ChuỗiChuỗi
Định dạng chuỗiĐịnh dạng chuỗi
Các thành viên lớp stringCác thành viên lớp string Compare() so sánh hai chuỗiCompare() so sánh hai chuỗi Copy() tạo bản saoCopy() tạo bản sao Insert() chèn chuỗiInsert() chèn chuỗi Split() cắt chuỗi v.v….Split() cắt chuỗi v.v…. Trim(), TrimEnd(),TrimStart() Trim(), TrimEnd(),TrimStart() ToUpper() , ToLower() v.v….ToUpper() , ToLower() v.v….
![Page 23: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/23.jpg)
Xử lý lỗi & exception (biệt lệ)Xử lý lỗi & exception (biệt lệ)
Exception chứa các thông tin về sự cố bất Exception chứa các thông tin về sự cố bất thường của chương trìnhthường của chương trình
Phân biệt bug , error , và exceptionPhân biệt bug , error , và exception Chương trình dù đã không còn bug hay error Chương trình dù đã không còn bug hay error
vẫn có thể cho ra các exception ( truy cập , bộ vẫn có thể cho ra các exception ( truy cập , bộ nhớ )nhớ )
Có thể dùng các đối tượng exception có sẵn , Có thể dùng các đối tượng exception có sẵn , tự tạo exception , hay bắt exception trong tự tạo exception , hay bắt exception trong exception (trong trường hợp sửa lỗi )exception (trong trường hợp sửa lỗi )
![Page 24: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/24.jpg)
Xử lý lỗi & exception (biệt lệ)Xử lý lỗi & exception (biệt lệ)
Cấu trúc xử lý lỗiCấu trúc xử lý lỗi
![Page 25: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/25.jpg)
Xử lý lỗi & exception (biệt lệ)Xử lý lỗi & exception (biệt lệ)
Đối tượng Exception :Đối tượng Exception :
Tạo biệt lệ :Tạo biệt lệ :
![Page 26: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/26.jpg)
Delegate và EventDelegate và Event
Delegate ( ủy thác , ủy quyền ) : giúp giải Delegate ( ủy thác , ủy quyền ) : giúp giải quyết vấn đề muốn thực thi một phương thức quyết vấn đề muốn thực thi một phương thức nào đó của một đối tượng nào đó nhưng người nào đó của một đối tượng nào đó nhưng người lập trình có thể chưa rõ lúc thiết kế. lập trình có thể chưa rõ lúc thiết kế.
Một delegate chứa tham chiếu tới hàmMột delegate chứa tham chiếu tới hàm Cách khai báoCách khai báo
Access Modifier delegate [void] DelegateName(…)
![Page 27: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/27.jpg)
![Page 28: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/28.jpg)
Event : Ứng với mỗi thao tác người dùng sẽ có một Event : Ứng với mỗi thao tác người dùng sẽ có một sự kiện phát sinh , và chương trình sẽ phải đáp trả cho sự kiện phát sinh , và chương trình sẽ phải đáp trả cho mỗi sự kiện này.mỗi sự kiện này.
Khái niệm Publishing và SubcribingKhái niệm Publishing và Subcribing Publishing : Một lớp phát sinh sự kiệnPublishing : Một lớp phát sinh sự kiện Subscribing : Các lớp được subscribe sẽ nhận thông báo về Subscribing : Các lớp được subscribe sẽ nhận thông báo về
sự kiện phát sinh , và thực thisự kiện phát sinh , và thực thi Event trong C# sẽ được cài đặt bằng delegate. Lớp Event trong C# sẽ được cài đặt bằng delegate. Lớp
publish định nghĩa một delegate. Khi một sự kiện publish định nghĩa một delegate. Khi một sự kiện phát sinh phương thức của lớp subscribe sẽ được gọi phát sinh phương thức của lớp subscribe sẽ được gọi thông qua delegatethông qua delegate
Delegate và EventDelegate và Event
![Page 29: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/29.jpg)
![Page 30: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/30.jpg)
![Page 31: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/31.jpg)
Delegate và EventDelegate và Event
![Page 32: Bai 2 - Khai Niem Co Ban C#](https://reader035.fdocument.pub/reader035/viewer/2022081519/5571f31049795947648d6de4/html5/thumbnails/32.jpg)
Bài sauBài sau
Window FormWindow Form Giới thiệu về Window FormGiới thiệu về Window Form Giới thiệu về các control , hộp thoại menu , Giới thiệu về các control , hộp thoại menu ,
custom controlcustom control Tác vụ FileTác vụ File
Quản lý thư mục ,tìm kiếm file , folderQuản lý thư mục ,tìm kiếm file , folder Di chuyển, sao chép, huỷ các file và folder Di chuyển, sao chép, huỷ các file và folder Đọc và ghi văn bản trong các file Đọc và ghi văn bản trong các file