Khái niệm cơ bản C#
Khái niệm cơ bản C#
Trần Anh Tuấn A
Trần Anh Tuấn A
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ượng
Lớp và đối tượng
Thừa kế và đa hình
Thừa kế và đa hình
Cấu trúc
Cấu trúc
Giao diện
Giao diện
Array , Indexer , và Collection
Array , Indexer , và Collection
Chuỗi
Chuỗi
Xử lý lỗi & exception (biệt lệ)
Xử lý lỗi & exception (biệt lệ)
Delegate và Event
Delegate và Event
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 Wiltamuth
Scott Wiltamuth
C# là một ngôn ngữ :
C# là một ngôn ngữ :
Đơn giản
Đơn giản
Hiện đại
Hiện đại
Hướng đối tượng
Hướng đối tượng
Mạnh mẽ & Mềm dẻo
Mạnh mẽ & Mềm dẻo
Ít từ khoá
Ít từ khoá
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ư macro ,
Loại bỏ những phức tạp có trong Java hay C++ như macro ,
template , đa kế thừa , virtual base class
template , đa kế thừa , virtual base class
Giống về diện mạo cú pháp C và C++ nhưng được cải tiến
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ụ : “:: , . ,
đơ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 bộ nhớ tự
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ã nguồn…
động , kiểu dữ liệu an toàn, bảo mật mã nguồn…
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 hạn ở
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ữ.
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, trình
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…
biên dịch cho các ngôn ngữ khác v.v…
Giới thiệu C#
Giới thiệu C#
C# có ít từ khoá :
C# có ít từ khoá :
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ơn
tê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);
Những cơ sở ngôn ngữ C#
Những cơ sở ngôn ngữ C#
Phân biệt chữ hoa chữ thường
Phâ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 , goto
Câ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ợp
hợp
VD : 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());
Những cơ sở ngôn ngữ C#
Những cơ sở ngôn ngữ C#
Tạo vùng tên
Tạo vùng tên
(namespace)
(namespace)
Lớp và đối tượng
Lớ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
Lớp và đối tượng
Lớ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ép
Phươ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)
Lớp và đối tượng
Lớp và đối tượng
Tham chiếu
Tham chiếu
Trong lớp Time
Trong lớp Time
Sử dụng
Sử dụng
Lớp và đối tượng
Lớ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_sHoten
Lớp người có chuỗi m_sHoten
Cài đặt Property HoTen
Cài đặt Property HoTen
Sử dụng Property
Sử dụng Property
Nguoi 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;
Thừa Kế & Đa Hình
Thừa Kế & Đa Hình
Thừa kế : “:” Đa Hình : “virtual”
Thừa kế : “:” Đa Hình : “virtual”
Boxing & UnBoxing
Boxing & UnBoxing
Boxing : chuyển đổi kiểu giá trị thành kiểu Object
Boxing : 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ị
Cấu Trúc
Cấu Trúc
Cách dùng :
Location loc
= new Location(200,300);
Console.WriteLine(“KQ = {0}”, loc );
Giao diện
Giao 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ện
Mở rông giao diện & Kết hợp giao diện
Giao diện
Giao 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
Array , Indexer , và Collection
Array , 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…)
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 :
Array , Indexer , và Collection
Array , 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 :
Chuỗi
Chuỗ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.length
Lấ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 )
Chuỗi
Chuỗi
Định dạng chuỗi
Định dạng chuỗi
Các thành viên lớp string
Các thành viên lớp string
Compare() so sánh hai chuỗi
Compare() so sánh hai chuỗi
Copy() tạo bản sao
Copy() tạo bản sao
Insert() chèn chuỗi
Insert() 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….
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ình
thường của chương trình
Phân biệt bug , error , và exception
Phâ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 )
Xử lý lỗi & exception (biệt lệ)
Xử lý lỗi & exception (biệt lệ)
Cấu trúc xử lý lỗi
Cấu trúc xử lý lỗi
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ệ :